Bagaimana cara menambahkan string ke nilai kolom di MySQL?

123

Saya memerlukan pernyataan pembaruan SQL untuk memperbarui bidang tertentu dari semua baris dengan string "test" yang akan ditambahkan di depan nilai yang ada.

Misalnya, jika nilai yang ada adalah "coba", itu harus menjadi "testtry".

santanu
sumber

Jawaban:

261

Anda dapat menggunakan fungsi CONCAT untuk melakukan itu:

UPDATE tbl SET col=CONCAT('test',col);

Jika Anda ingin menjadi lebih pintar dan hanya memperbarui kolom yang belum memiliki tes sebelumnya, coba

UPDATE tbl SET col=CONCAT('test',col)
WHERE col NOT LIKE 'test%';
Paul Dixon
sumber
16
UPDATE tablename SET fieldname = CONCAT("test", fieldname) [WHERE ...]
Ferdinand Beyer
sumber
perbarui TIKET set status_details = CONCAT (status _details, 'abc') di mana ticket_id = 75108; ERROR 1583 (42000): Parameter salah dalam panggilan ke fungsi asli 'CONCAT'
nirmesh khandelwal
9

Banyak fungsi pembaruan string di MySQL tampaknya berfungsi seperti ini: Jika satu argumen null, maka penggabungan atau fungsi lain nulljuga kembali . Jadi, untuk memperbarui bidang dengan nullnilai, pertama-tama setel ke nilai bukan nol, seperti''

Sebagai contoh:

update table set field='' where field is null;
update table set field=concat(field,' append');
bvidinli.dll
sumber
6

Itu sederhana

UPDATE YourTable SET YourColumn = CONCAT('prependedString', YourColumn);
Soulmerge
sumber
Koreksi hingga klausa WHERE, di mana Anda hanya menggabungkan pengujian ke kolom yang sudah dimulai dengan pengujian. Jadi: foo -> foo footest -> footest testfoo -> testtestfoo
Jukka Dahlbom
0
  • UPDATE table_name SET Column1 = CONCAT ('newtring', table_name.Column1) dimana 1
  • UPDATE table_name SET Column1 = CONCAT ('newtring', table_name.Column2) dimana 1
  • UPDATE table_name SET Column1 = CONCAT ('newtring', table_name.Column2, 'newtring2') dimana 1

Kita bisa menggabungkan kolom yang sama atau juga kolom lain dari tabel.

pengguna3419778
sumber