【问题标题】:How do I ignore white space in group_concat如何忽略 group_concat 中的空格
【发布时间】:2019-10-29 19:49:54
【问题描述】:

有没有办法使用 group_concat 忽略空格,就像 concat_ws 一样?尽管this answer 建议使用 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


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢 :) 这很好地删除了多余的逗号,但留下了一堆难看的空符号。 ifnull(group_concat(if(ac.color='',null,ac.color) separator ', '),'') as ... 工作完美。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-25
    • 2021-12-31
    • 1970-01-01
    • 2015-03-31
    • 2018-04-24
    • 2020-12-05
    相关资源
    最近更新 更多