我需要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')
以上是否正确?
答案 0 :(得分:55)
尝试此查询:
update tablename set col1name = concat(ifnull(col1name,""), 'a,b,c');
答案 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
示例数据:
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')