MySQL UPDATE将数据附加到列中

时间:2012-12-24 11:36:30

标签: mysql append sql-update

我需要UPDATE tablename(col1name)

如果已有数据,我需要附加值'a,b,c' 如果它是NULL,我需要添加值'a,b,c'

我知道有一个CONCAT参数,但不确定SQL语法是什么。

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

以上是否正确?

5 个答案:

答案 0 :(得分:55)

尝试此查询:

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

Refer this sql fiddle demo.

答案 1 :(得分:6)

这应该这样做:

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


或者通过分两步完成,您可以让您的生活更轻松:

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

然后

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

答案 2 :(得分: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 |

答案 3 :(得分:0)

IFNULL(列,''),保存所有if语句,使SQL更简单!

MySQL 5.6架构设置

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

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

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

<强> Query

select *
from tablename

<强> Results

|         yourcol |
|-----------------|
| sadsdhsomevalue |
|       somevalue |

答案 4 :(得分:-1)

为什么要编写ifnull函数:很明显,如果col1name1为空,则串联为null意味着null +'a,b,c'只是'a,b,c' 设置col1name = concat(ifnull(col1name,“”),'a,b,c') 代替这个,你可以直接写 设置col1name = concat(col1name,'a,b,c')