Làm cách nào để nối một chuỗi vào trường hiện có trong MySQL?


101

Tôi muốn cập nhật mã trên tất cả hồ sơ của mình thành mã hiện tại cộng với _ tiêu chuẩn bất kỳ ý tưởng nào?

Vì vậy, ví dụ: nếu mã là apple_1 và apple_2, tôi cần chúng là apple_1_standard và apple_2_standard

Trước:

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

Truy vấn Psuedo:

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

Kết quả mong đợi:

id   code
----------------------
1    apple_1_standard 
1    apple_2_standard

Câu trả lời:


224

Bạn cần sử dụng CONCAT()hàm trong MySQL để nối chuỗi:

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

60
Đề phòng trường hợp ai đó gặp phải vấn đề tương tự như tôi đã làm: Nếu trường codelà NULL theo mặc định, bạn cần sử dụng: UPDATE categories SET code = CONCAT(IFNULL(code,''), '_standard') WHERE id = 1;Nếu không thì concat sẽ luôn dẫn đến NULL.
Kai Noack

3
Ngoài ra, bạn có thể sử dụng CONCAT_WS bỏ qua giá trị NULL. Ví dụ SELECT CONCAT_WS(', ','First name',NULL,'Last Name'); cho 'First name, Last Name'
BarneySchmale

@Daniel Làm thế nào về việc cập nhật câu trả lời theo nhận xét ở trên?
kiedysktos

câu hỏi đặc biệt / riêng biệt cho trường hợp rỗng có thể xảy ra: stackoverflow.com/questions/14020867/…
qdinar

0

Cập nhật trường hình ảnh để thêm URL đầy đủ, bỏ qua các trường rỗng:

UPDATE test SET image = CONCAT('https://my-site.com/images/',image) WHERE image IS NOT NULL;
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.