2012-12-24 9 views
23

にデータを追加し、私は値「B、C」 それがNULLである場合に、それを追加する必要があり、私がする必要があり'a、b、c'の値を追加してください。MySQLのUPDATEが、私はテーブル名(col1name)すでにデータがある場合</p> <p>を更新する必要が列

私はCONCAT引数がありますが、SQL構文は何か分かりません。

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

は、上記の正しいですか?

+1

お試しいただきましたか? –

+0

@FahimParkar SQL Fiddleを使用することはできませんでしたが、実際のWebサイトでは不明な点を試したくありませんでした。ありがとうございました。 –

答えて

46

は、このクエリをお試しください:

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

Refer this sql fiddle demo.

+1

SQL Fiddleについて、知りませんでした。ありがとう! – MyGGaN

+0

SQLのフィドルのデモ出力エラー(FFとChromeの両方)。別のものを作成しました:http://sqlfiddle.com/#!9/8385a3/1/0 –

4

次を使用することができます。

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

は、サンプル・データSQL Fiddle with Demo

を参照してください:

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

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

が返されます:

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

これはそれを行う必要があります:

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


それとも、2つのステップでそれをすることによってあなたの人生を容易にすることができます:その後、

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

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

IFNULL(列、 '')は、if文をすべて保存して、SQLをより簡単にします。

SQL Fiddle

のMySQL 5.6スキーマのセットアップ

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

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

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

クエリ1

select * 
from tablename 

Results: |あなたの | ----------------- | | | sadsdhsomevalue | |

関連する問題