Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

SQL:tìm kiếm / thay thế nhưng chỉ lần đầu tiên một giá trị xuất hiện trong bản ghi

Đây thực sự phải là những gì bạn muốn trong MySQL:

UPDATE wp_post
SET post_content = CONCAT(REPLACE(LEFT(post_content, INSTR(post_content, 'A')), 'A', 'B'), SUBSTRING(post_content, INSTR(post_content, 'A') + 1));

Nó phức tạp hơn một chút so với câu trả lời trước đó của tôi - Bạn cần tìm trường hợp đầu tiên của 'A' (sử dụng hàm INSTR), sau đó sử dụng LEFT kết hợp với REPLACE để chỉ thay thế trường hợp đó, thay vì sử dụng SUBSTRING và INSTR để tìm thấy tương tự 'A' bạn đang thay thế và KẾT NỐI nó với chuỗi trước đó.

Xem bài kiểm tra của tôi bên dưới:

SET @string = 'this is A string with A replace and An Answer';
SELECT @string as actual_string
, CONCAT(REPLACE(LEFT(@string, INSTR(@string, 'A')), 'A', 'B'), SUBSTRING(@string, INSTR(@string, 'A') + 1)) as new_string;

Sản xuất:

actual_string                                  new_string
---------------------------------------------  ---------------------------------------------
this is A string with A replace and An Answer  this is B string with A replace and An Answer


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. virtualenv (python3.4), lỗi pip cài đặt mysqlclient

  2. Làm cách nào để chuyển từ máy chủ MySql sang ứng dụng Android?

  3. Cách sao chép cơ sở dữ liệu bằng phpMyAdmin

  4. Cơ sở dữ liệu góc:Hướng dẫn mới bắt đầu để công cụ lưu trữ Mysql

  5. RuntimeError:hoạt động bên ngoài ngữ cảnh ứng dụng