首页 > 解决方案 > 如何忽略 group_concat 中的空格

问题描述

有没有办法使用 group_concat 忽略空格,就像 concat_ws 一样?group_concat_ws 似乎不是一件事,即使这个答案建议使用它。

我正在使用这样的东西:

select phone.id,
group_concat(ac.color separator ', ') as 'Available Colors'
from phone_types phone
inner join available_colors ac on phone.id = ac.id
group by phone.id;

我得到这样的结果:

id    Available Colors
1     , 
2     red, blue
3     , , green
4
5     ,
6     red
7     ,blue,
8     green,

我试图得到这样的结果:

id    Available Colors
1      
2     red, blue
3     green
4
5     
6     red
7     blue
8     green

标签: mysql

解决方案


如果值为 NULL,group_concat 将忽略该字段。您看到空白的原因是因为它们是空字符串。你可以这样做:

group_concat( if(ac.color='',null,ac.color) ) as ...

推荐阅读