Saya punya tabel dengan kolom berikut di database MySQL
[id, url]
Dan url-nya seperti:
http://domain1.com/images/img1.jpg
Saya ingin memperbarui semua url ke domain lain
http://domain2.com/otherfolder/img1.jpg
menjaga nama file apa adanya.
Apa pertanyaan yang harus saya jalankan?
Jawaban:
sumber
dokumen yang relevan: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_replace
sumber
WHERE
klausul mengoptimalkan query hanya memodifikasi baris dengan URL tertentu. Logikanya, hasilnya akan sama, tetapi penambahanWHERE
akan membuat operasi lebih cepat.WHERE
Memastikan juga bahwa Anda hanya mengganti bagian dari string yang dimulai denganhttp://etc/etc/
ataustring_to_be_replaced.
Misalnya, di jawaban yang diberikan,http://domain1.com/images/this/is/a/test
akan terpengaruh, tapifoobar/http://domain1.com/images/
tidak mau.Coba gunakan fungsi REPLACE :
Perhatikan bahwa ini peka huruf besar-kecil.
sumber
Anda memerlukan klausa WHERE untuk mengganti HANYA rekaman yang sesuai dengan kondisi dalam klausa WHERE (yang bertentangan dengan semua rekaman). Anda menggunakan tanda % untuk menunjukkan string parsial: IE
berarti semua catatan yang DIMULAI dengan
"...//domain1.com/images/"
dan memiliki apa pun SETELAH (itu%
untuk ...)Contoh lain:
yang berarti semua catatan yang berisi
"http://domain1.com/images/"
di bagian mana pun dari string ...
sumber
Coba ini...
sumber
Pertama, harus periksa
PILIH * DARI
university
MANA course_name SUKA '% & amp%'Selanjutnya, harus memperbarui
UPDATE universitas SET course_name = REPLACE (course_name, '& amp', '&') WHERE id = 1
Hasil: Rekayasa & Teknologi amp => Rekayasa & Teknologi
sumber