Perbarui nilai kolom, ganti bagian dari string


326

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:



162
UPDATE yourtable
SET url = REPLACE(url, 'http://domain1.com/images/', 'http://domain2.com/otherfolder/')
WHERE url LIKE ('http://domain1.com/images/%');

dokumen yang relevan: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_replace


13
Hai, mengapa saya perlu di mana?
Guy Cohen

14
@GuyCohen Karena jika tidak, kueri akan mengubah setiap baris dalam tabel. The WHEREklausul mengoptimalkan query hanya memodifikasi baris dengan URL tertentu. Logikanya, hasilnya akan sama, tetapi penambahan WHEREakan membuat operasi lebih cepat.
Dmytro Shevchenko

3
The WHEREMemastikan juga bahwa Anda hanya mengganti bagian dari string yang dimulai dengan http://etc/etc/atau string_to_be_replaced.Misalnya, di jawaban yang diberikan, http://domain1.com/images/this/is/a/testakan terpengaruh, tapi foobar/http://domain1.com/images/tidak mau.
Kyle Challis


9

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

LIKE ('...//domain1.com/images/%');

berarti semua catatan yang DIMULAI dengan "...//domain1.com/images/"dan memiliki apa pun SETELAH (itu %untuk ...)

Contoh lain:

LIKE ('%http://domain1.com/images/%')

yang berarti semua catatan yang berisi "http://domain1.com/images/"

di bagian mana pun dari string ...


7

Coba ini...

update [table_name] set [field_name] = 
replace([field_name],'[string_to_find]','[string_to_replace]');

1

Pertama, harus periksa

PILIH * DARI universityMANA 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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.