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

Jawaban:


224

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

UPDATE categories SET code = CONCAT(code, '_standard') WHERE id = 1;

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