MySQL的更新数据追加到列(MySQL UPDATE append data into colum

2019-07-17 12:44发布

我需要更新的表名(col1name)

如果已经有数据,我需要与价值观“A,B,C”如果是空的,我需要添加值“A,B,C”追加它

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

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

就是上面是否正确?

Answer 1:

尝试此查询:

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

请参阅该SQL小提琴演示。



Answer 2:

这应该这样做:

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');


Answer 3:

您可以使用以下方法:

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

请参阅SQL拨弄演示

样本数据:

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

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

将返回:

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


Answer 4:

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' )
;

查询

select *
from tablename

结果

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


Answer 5:

为什么你写IFNULL函数:很明显,如果col1name1为空,它串联到null表示空+ 'A,B,C' 简单 'A,B,C' 设置col1name = CONCAT(IFNULL(col1name, “”),“ A,b,C'),而不是这个可以直接写集合col1name = CONCAT(col1name, 'A,b,C')



文章来源: MySQL UPDATE append data into column