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".

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%';

16
UPDATE tablename SET fieldname = CONCAT("test", fieldname) [WHERE ...]

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');

6

Itu sederhana

UPDATE YourTable SET YourColumn = CONCAT('prependedString', YourColumn);

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.

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.