2012-12-24 23 views
23

necessario aggiornare nometabella (col1name)MySQL UPDATE accodare dati nella colonna

Se esiste già dati, ho bisogno di aggiungere con valori 'a, b, c' Se è NULL, devo aggiungi i valori 'a, b, c'

So che esiste un argomento CONCAT, ma non sono sicuro di quale sarebbe la sintassi SQL.

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

È quanto sopra è corretto?

+1

hai provato? –

+0

@FahimParkar Non mi ero reso conto che avrei potuto usare SQL Fiddle, ma non volevo provare qualcosa di incerto su un sito web dal vivo. Grazie. –

risposta

46

Prova questa ricerca:

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

Refer this sql fiddle demo.

+1

Non sapevo di SQL Fiddle, grazie! – MyGGaN

+0

La demo di fiddle SQL emette un errore per me (sia in FF che in Chrome). Creato un altro: http://sqlfiddle.com/#!9/8385a3/1/0 –

4

È possibile utilizzare il seguente:

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

Vedi SQL Fiddle with Demo

dati del campione:

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

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

tornerà:

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

Questo dovrebbe farlo:

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


Oppure si potrebbe rendere la vita più facile farlo in due fasi:

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

poi

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

IFNULL (colonna, ''), salva qualsiasi istruzione if, rende l'SQL molto più semplice!

SQL Fiddle

MySQL 5.6 Setup Schema:

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 |

Problemi correlati