MySQL GROUP_CONCAT多个字段

时间:2012-10-08 12:29:12

标签: mysql concat group-concat

我可能没有脑力。

我想从数据库中的两个字段使用GROUP_CONCAT返回一系列数字。到目前为止,我已使用以下方法完成此操作:

SELECT t_id,
CONCAT(GROUP_CONCAT(DISTINCT s_id),',',IFNULL(GROUP_CONCAT(DISTINCT i_id),'')) AS all_ids
FROM mytable GROUP BY t_id

这样可以正常工作,但如果i_id为NULL,那么我当然会得到一个不必要的逗号。有没有更好的方法来做到这一点,如果i_id为NULL,我最终不会以逗号结尾?

1 个答案:

答案 0 :(得分:13)

您需要使用CONCAT_WS来避免comma值的额外NULL,请尝试以下操作:

SELECT t_id,
       CONCAT_WS(',', GROUP_CONCAT(DISTINCT s_id),
                 GROUP_CONCAT(DISTINCT i_id)) AS all_ids
FROM mytable
GROUP BY t_id;