2012-12-24 15 views
23

trzeba zaktualizować tablename (col1name)MySQL UPDATE dodawać dane do kolumny

Jeśli istnieje już danych trzeba dodać go wartości „a, b, c” Jeśli NULL muszę dodać wartości "a, b, c"

Wiem, że istnieje argument CONCAT, ale nie jestem pewien, jaka byłaby składnia SQL.

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

Czy powyższe są prawidłowe?

+1

czy próbowałeś? –

+0

@FahimParkar Nie zdawałem sobie sprawy, że mogłem użyć SQL Fiddle, ale nie chciałem wypróbować czegoś niepewnego na stronie internetowej na żywo. Dziękuję Ci. –

Odpowiedz

46

Spróbuj tego zapytania:

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

Refer this sql fiddle demo.

+1

Nie wiedziałem o SQL Fiddle, dzięki! – MyGGaN

+0

Błąd wyjściowy dla demona SQL dla mnie (zarówno w FF, jak i Chrome). Utworzono następną: http://sqlfiddle.com/#!9/8385a3/1/0 –

4

można użyć następujących:

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

Zobacz SQL Fiddle with Demo

dane próbki:

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

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

Wrócimy:

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

ten powinien zrobić:

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


Albo można ułatwić sobie życie robiąc to w dwóch etapach:

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

następnie

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

IFNULL (kolumna, ''), zapisuje wszystkie instrukcje if, czyni SQL znacznie prostszym!

SQL Fiddle

MySQL 5.6 Schemat konfiguracji:

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 |