Bagaimana cara menambahkan string ke bidang yang ada di MySQL?

101

Saya ingin memperbarui kode di semua catatan saya menjadi apa yang saat ini ditambah _standard ada ide?

Jadi misalnya jika kodenya adalah apple_1 dan apple_2 saya membutuhkannya apple_1_standard dan apple_2_standard

Sebelum:

id   code
------------
1    apple_1 
1    apple_2

Kueri Psuedo:

update categories set code = code + "_standard" where id = 1;

Hasil yang diharapkan:

id   code
----------------------
1    apple_1_standard 
1    apple_2_standard
Matt Elhotiby
sumber

Jawaban:

224

Anda perlu menggunakan CONCAT()fungsi di MySQL untuk penggabungan string:

UPDATE categories SET code = CONCAT(code, '_standard') WHERE id = 1;
Daniel Vassallo
sumber
60
Untuk berjaga-jaga jika seseorang mengalami masalah yang sama seperti yang saya lakukan: Jika bidangnya codeNULL secara default, Anda perlu menggunakan: UPDATE categories SET code = CONCAT(IFNULL(code,''), '_standard') WHERE id = 1;Jika tidak, concat akan selalu menghasilkan NULL.
Kai Noack
3
Atau Anda dapat menggunakan CONCAT_WS yang melewatkan nilai NULL. Misalnya SELECT CONCAT_WS(', ','First name',NULL,'Last Name'); memberikan 'Nama depan, Nama Belakang'
BarneySchmale
@Daniel Bagaimana dengan memperbarui jawaban menurut komentar di atas?
kiedysktos
pertanyaan khusus / terpisah untuk kemungkinan kasus nol: stackoverflow.com/questions/14020867/…
qdinar
0

Perbarui bidang gambar untuk menambahkan URL lengkap, mengabaikan bidang nol:

UPDATE test SET image = CONCAT('https://my-site.com/images/',image) WHERE image IS NOT NULL;
gus
sumber