2010-05-03 73 views
35

Tôi cần phải thêm dữ liệu vào trường đã chứa dữ liệu mà không xóa những gì hiện có ở đó. Ví dụ: nếu trường có chứa HTML, tôi cần thêm HTML bổ sung vào trường. Có một cuộc gọi SQL mà sẽ làm điều này hoặc tôi cần phải gọi dữ liệu trong lĩnh vực đó, nối dữ liệu mới với dữ liệu hiện có, và tải lại nó vào cơ sở dữ liệu?Thêm dữ liệu vào trường cơ sở dữ liệu MySQL đã có dữ liệu trong đó

+0

gần như trùng lặp của http://stackoverflow.com/questions/680801/how-to-prepend-a-string-to-a-column-value-in-mysql - đó là về việc chuẩn bị trước – qdinar

Trả lời

71
UPDATE Table SET Field=CONCAT(Field,'your extra html'); 
+0

đẹp nhất thực sự tuyệt vời. –

11
UPDATE myTable SET html=concat(html,'<b>More HTML</b>') WHERE id='10' 

... ví dụ. WHERE của bạn sẽ khác nhau tất nhiên.

3

Nối vào cuối của một trường, cách nhau bằng một ngắt dòng:

UPDATE Table SET Comment = CONCAT_WS(CHAR(10 USING UTF8), Comment, 'my comment.'); 
  • CONCAT_WS() gắn thêm nhiều chuỗi cách nhau bởi một dấu phân cách nhất định.
  • CHAR(10, UTF8) là ngắt dòng.
1

UPDATE Table SET Field=CONCAT(IFNULL(Field, ''), 'Your extra HTML')

Nếu trường có chứa giá trị NULL thì CONCAT cũng sẽ trở lại NULL. Sử dụng IFNULL sẽ giúp bạn cập nhật cột ngay cả khi nó có giá trị NULL.

Các vấn đề liên quan