MySQL UPDATE将数据追加到列

rggaifut  于 2023-10-15  发布在  Mysql
关注(0)|答案(6)|浏览(158)

我需要更新tablename(col1name)
如果已经有数据,我需要在它后面附加值'a,B,c'如果它是NULL,我需要添加值'a,B,c'
我知道有一个CONCAT参数,但不确定SQL语法是什么。
update tablename set col1name = concat(ifnull(col1name, 'a,b,c'), 'a,b,c')
上述是否正确?

gdrx4gfi

gdrx4gfi1#

试试这个查询:

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

参考这个sql fiddle演示。

ogsagwnx

ogsagwnx2#

这应该可以做到:

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

wqnecbli3#

您可以使用以下内容:

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 |
omtl5h9j

omtl5h9j4#

IFNULL(column,“),保存所有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 |
6uxekuva

6uxekuva5#

对于那些需要一个声明选项的人,这个例子可能会有所帮助:

update tablename set col1name = concat(ifnull(col1name,""), ?) WHERE table_id = ?;

定期绑定将工作;在这种情况下,两个变量:col 1 nametable_id。这在更改/更新日志中可能很方便。不需要抓取以前的日志。

dpiehjr4

dpiehjr46#

为什么要写ifnull函数:很明显,如果col1name 1为空,它连接到null意味着null +'a,b,c'简单地'a,b,c'设置col1name = concat(ifnull(col1name,"”),'a,b,c')而不是这样,你可以直接写set col1name = concat(col1name,'a,b,c')

相关问题