我需要更新tablename(col1name)如果已经有数据,我需要在它后面附加值'a,B,c'如果它是NULL,我需要添加值'a,B,c'我知道有一个CONCAT参数,但不确定SQL语法是什么。update tablename set col1name = concat(ifnull(col1name, 'a,b,c'), 'a,b,c')上述是否正确?
update tablename set col1name = concat(ifnull(col1name, 'a,b,c'), 'a,b,c')
gdrx4gfi1#
试试这个查询:
update tablename set col1name = concat(ifnull(col1name,""), 'a,b,c');
参考这个sql fiddle演示。
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');
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 |
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 |
6uxekuva5#
对于那些需要一个声明选项的人,这个例子可能会有所帮助:
update tablename set col1name = concat(ifnull(col1name,""), ?) WHERE table_id = ?;
定期绑定将工作;在这种情况下,两个变量:col 1 name和table_id。这在更改/更新日志中可能很方便。不需要抓取以前的日志。
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')
6条答案
按热度按时间gdrx4gfi1#
试试这个查询:
参考这个sql fiddle演示。
ogsagwnx2#
这应该可以做到:
或者你可以通过两个步骤让你的生活更轻松:
然后
wqnecbli3#
您可以使用以下内容:
查看SQL Fiddle with Demo
样本数据:
将返回:
omtl5h9j4#
IFNULL(column,“),保存所有if语句,使SQL更简单!
MySQL 5.6架构设置:
查询:
结果:
6uxekuva5#
对于那些需要一个声明选项的人,这个例子可能会有所帮助:
定期绑定将工作;在这种情况下,两个变量:col 1 name和table_id。这在更改/更新日志中可能很方便。不需要抓取以前的日志。
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')