2012-12-24 64 views
23

Tôi cần cập nhật tablename (col1name)MySQL CẬP NHẬT thêm dữ liệu vào cột

Nếu có được dữ liệu, tôi cần phải thêm nó với giá trị 'a, b, c' Nếu nó là NULL, tôi cần phải thêm các giá trị 'a, b, c'

Tôi biết có đối số CONCAT, nhưng không chắc cú pháp SQL sẽ là gì.

update tablename set col1name = concat(ifnull(col1name, 'a,b,c'), 'a,b,c')

Có đúng không?

+1

bạn đã thử? –

+0

@FahimParkar Tôi đã không nhận ra rằng tôi có thể đã sử dụng SQL Fiddle, nhưng không muốn thử một cái gì đó không chắc chắn trên một trang web trực tiếp. Cảm ơn bạn. –

Trả lời

46

Hãy thử truy vấn này:

update tablename set col1name = concat(ifnull(col1name,""), 'a,b,c'); 

Refer this sql fiddle demo.

+1

Không biết về SQL Fiddle, cảm ơn! – MyGGaN

+0

Lỗi đầu ra bản demo SQL fiddle cho tôi (cả trong FF và Chrome). Tạo một số khác: http://sqlfiddle.com/#!9/8385a3/1/0 –

4

Bạn có thể sử dụng như sau:

update yourtable 
set yourcol = case when yourcol is null then 'a,b,c' 
        else concat(yourcol, ' a,b,c') end 

Xem SQL Fiddle with Demo

dữ liệu mẫu:

CREATE TABLE yourtable(`yourcol` varchar(50)); 

INSERT INTO yourtable(`yourcol`) 
VALUES ('sadsdh'), 
    (NULL); 

Sẽ trả lại:

|  YOURCOL | 
---------------- 
| sadsdh a,b,c | 
|  a,b,c | 
5

này nên làm điều đó:

update tablename set 
col1name = if(col1name is null, 'a,b,c', concat(col1name, 'a,b,c')); 


Hoặc bạn có thể làm cho cuộc sống của bạn dễ dàng hơn bằng cách thực hiện nó theo hai bước:

update tablename set col1name = '' where col1name is null; 

sau đó

update tablename set col1name = concat(col1name, 'a,b,c'); 
0

IFNULL (cột, ''), lưu bất kỳ câu lệnh if nào, làm cho SQL đơn giản hơn nhiều!

SQL Fiddle

MySQL 5.6 Schema Cài đặt:

CREATE TABLE tablename 
    (`yourcol` varchar(50)) 
; 

INSERT INTO tablename 
    (`yourcol`) 
VALUES 
    ('sadsdh'), 
    (NULL) 
; 

UPDATE tablename SET 
    yourcol = CONCAT(IFNULL(yourcol,' '), 'somevalue') 
; 

Query 1:

select * 
from tablename 

Results: | yourcol | | ----------------- | | sadsdhsomevalue | | somevalue |

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