sql 记录函数 CONCAT与CONCAT_WS的一点区别
程序员文章站
2022-07-13 23:30:08
...
实际开发sql中可能会遇到这么一种情况:
CONCAT_WS(',',
if(FIND_IN_SET('01',e.skin),'1',''),
if(FIND_IN_SET('07',e.skin),'2',''),
if(FIND_IN_SET('08',e.skin),'3',''),
if(e.skin='' or e.skin is null or e.skin not in('01','07','08'),'4',''))
实际查出了的结果:可能会含有空,看起来非常不爽
1,,3,4,
非常想把多余的逗号去掉:
方法一:
'' 转null:
CONCAT_WS(',',
if(FIND_IN_SET('01',e.skin),'1',null),
if(FIND_IN_SET('07',e.skin),'2',null),
if(FIND_IN_SET('08',e.skin),'3',null),
if(e.skin='' or e.skin is null or e.skin not in('01','07','08'),'4',null))
1,3,4
这样就非常爽啦!!
二、体会区别:
SELECT CONCAT(null,'12','22');
SELECT CONCAT_WS(',',NULL,'12','13')
推荐阅读