Làm cách nào để thêm một chuỗi vào giá trị cột trong MySQL?


123

Tôi cần câu lệnh cập nhật SQL để cập nhật một trường cụ thể của tất cả các hàng có chuỗi "kiểm tra" sẽ được thêm vào phía trước giá trị hiện có.

Ví dụ: nếu giá trị hiện có là "try" thì nó sẽ trở thành "testtry".

Câu trả lời:


261

Bạn có thể sử dụng hàm CONCAT để làm điều đó:

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

Nếu bạn muốn nhận được thông tin chi tiết hơn và chỉ cập nhật các cột chưa có kiểm tra thêm trước, hãy thử

UPDATE tbl SET col=CONCAT('test',col)
WHERE col NOT LIKE 'test%';

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

cập nhật TICKET set status_details = CONCAT (status _details, 'abc') trong đó ticket_id = 75108; ERROR 1583 (42000): Tham số sai trong các cuộc gọi đến chức năng có nguồn gốc 'CONCAT'
Khandelwal nirmesh

9

Nhiều hàm cập nhật chuỗi trong MySQL dường như đang hoạt động như thế này: Nếu một đối số là null, thì nối hoặc các hàm khác nullcũng trả về . Vì vậy, để cập nhật một trường có nullgiá trị, trước tiên hãy đặt nó thành giá trị khác rỗng, chẳng hạn như''

Ví dụ:

update table set field='' where field is null;
update table set field=concat(field,' append');

6

Đó là một trong những đơn giản

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

Sửa lại mệnh đề WHERE, trong đó bạn chỉ kết hợp kiểm tra với các cột đã bắt đầu với kiểm tra. Vì vậy: foo -> foo footest -> footest testfoo -> testtestfoo
Jukka Dahlbom

0
  • UPDATE table_name SET Column1 = CONCAT ('newtring', table_name.Column1) trong đó 1
  • UPDATE table_name SET Column1 = CONCAT ('newtring', table_name.Column2) trong đó 1
  • UPDATE table_name SET Column1 = CONCAT ('newtring', table_name.Column2, 'newtring2') trong đó 1

Chúng ta có thể nối cùng một cột hoặc cột khác của bảng.

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.