Rumah >pangkalan data >tutorial mysql >Bagaimana Menggantikan Berbilang Rentetan dengan Betul dalam Rekod MySQL Menggunakan Fungsi `REPLACE()`?
Masalah:
Pangkalan data mengandungi rekod dengan data yang rosak dalam lajur tertentu. Khususnya, aksara tertentu telah tersilap melarikan diri, mengganggu kefungsian pautan yang dijana. Objektifnya adalah untuk menggantikan aksara yang salah ini dalam semua rekod yang terjejas menggunakan fungsi MySQL replace().
Penyelesaian:
Untuk menggunakan fungsi replace() dalam MySQL , ikut sintaks:
UPDATE MyTable SET StringColumn = REPLACE(StringColumn, 'SearchForThis', 'ReplaceWithThis') WHERE SomeOtherColumn LIKE '%PATTERN%';
Dalam senario yang disediakan, kita perlu menggantikan rentetan "<" dengan kurungan sudut literal "<" dalam lajur artikelItem untuk semua rekod yang mengandungi "<". Memandangkan kemungkinan aksara ini telah dilarikan ke "GREATERTHAN", pertanyaannya adalah seperti berikut:
UPDATE MyTable SET articleItem = REPLACE(articleItem, 'GREATERTHAN', '>');</p> <p>Jika terdapat berbilang aksara yang memerlukan penggantian, fungsi replace() boleh disarangkan:</p> <pre class="brush:php;toolbar:false">UPDATE MyTable SET articleItem = REPLACE(REPLACE(articleItem, 'GREATERTHAN', '>'), 'LESSTHAN', '<');
Pendekatan Pertanyaan Tunggal:
pertanyaan di atas boleh digunakan untuk menggantikan berbilang aksara dalam satu pertanyaan. Anda juga boleh melakukan penggantian semasa memilih data:
SELECT REPLACE(MyURLString, 'GREATERTHAN', '>') AS MyURLString FROM MyTable;
Dalam contoh ini, rentetan yang diganti dikembalikan sebagai MyURLString dan bukannya mengemas kini lajur asal.
Atas ialah kandungan terperinci Bagaimana Menggantikan Berbilang Rentetan dengan Betul dalam Rekod MySQL Menggunakan Fungsi `REPLACE()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!