Kami memiliki database yang memiliki banyak catatan dengan beberapa data buruk dalam satu kolom, di mana editor yang disematkan melarikan diri dari beberapa hal yang seharusnya tidak diloloskan dan itu memecah tautan yang dihasilkan.
Saya ingin menjalankan kueri untuk mengganti karakter buruk di semua catatan, tetapi tidak tahu cara melakukannya. Saya menemukan satu replace()
fungsi di MySQL, tapi bagaimana saya bisa menggunakannya di dalam query?
Sebagai contoh, apa yang akan menjadi sintaks yang benar jika saya ingin mengganti string <
dengan braket sudut kurang nyata ( <
) di semua catatan yang ada <
di articleItem
kolom? Bisakah itu dilakukan dalam satu permintaan (yaitu memilih dan mengganti semua dalam satu gerakan), atau apakah saya harus melakukan beberapa pertanyaan? Bahkan jika itu adalah beberapa kueri, bagaimana saya menggunakan replace()
untuk mengganti nilai bidang pada lebih dari satu catatan?
Jawaban:
Pada tingkat yang sangat umum
Dalam kasus Anda, Anda mengatakan ini lolos tetapi karena Anda tidak menentukan bagaimana melarikan diri, katakanlah mereka melarikan diri ke
GREATERTHAN
Karena kueri Anda benar-benar akan berfungsi di dalam string,
WHERE
klausa Anda melakukan pencocokan pola tidak mungkin untuk meningkatkan kinerja apa pun - itu sebenarnya akan menghasilkan lebih banyak pekerjaan untuk server. Kecuali jika Anda memiliki anggota klausa WHERE lain yang akan membuat kueri ini berkinerja lebih baik, Anda bisa melakukan pembaruan seperti ini:Anda juga dapat membuat sarang beberapa
REPLACE
panggilanAnda juga dapat melakukan ini saat memilih data (yang bertentangan dengan saat Anda menyimpannya).
Jadi alih-alih:
SELECT MyURLString From MyTable
Anda bisa melakukannya
SELECT REPLACE (MyURLString, 'GREATERTHAN', '>') as MyURLString From MyTable
sumber
sumber
<
s. Anda perlu menggunakan penyandian &, seperti:&
:)Periksa ini
Misalnya dengan string sampel:
EG dengan Nama Kolom / Bidang:
sumber
Anda dapat menulis prosedur tersimpan seperti ini:
Dengan cara ini Anda memiliki kontrol termodulasi atas tabel.
Anda juga dapat menggeneralisasi prosedur tersimpan membuatnya, parametrik dengan tabel untuk membersihkan parameter input
sumber
Ini akan membantu Anda.
Hasil:
sumber