Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

SQL:cari/ganti tetapi hanya pertama kali nilai muncul dalam catatan

Ini seharusnya yang Anda inginkan di 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));

Ini sedikit lebih rumit daripada jawaban saya sebelumnya - Anda perlu menemukan contoh pertama dari 'A' (menggunakan fungsi INSTR), kemudian gunakan KIRI dalam kombinasi dengan REPLACE untuk mengganti contoh itu saja, daripada menggunakan SUBSTRING dan INSTR untuk menemukan yang sama 'A' Anda mengganti dan CONCAT dengan string sebelumnya.

Lihat pengujian saya di bawah ini:

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;

Menghasilkan:

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. Kolasi Case Sensitive di MySQL

  2. Cara mendapatkan nilai untuk setiap hari dalam sebulan

  3. Apakah menggunakan Tabel Master untuk kolom bersama praktik yang baik untuk seluruh database?

  4. Penyimpanan array byte mysql

  5. Bagaimana cara menambahkan skrip startup ke wadah buruh pelabuhan mysql?