5

私はおそらく頭がおかしい瞬間を持っています。

データベースの2つのフィールドから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の場合に最後にコンマが表示されないようにするためのより良い方法はありますか?

4

1 に答える 1

14

余分な値を避けるためにCONCAT_WSを使用する必要があります。これを試してください:commaNULL

SELECT t_id,
       CONCAT_WS(',', GROUP_CONCAT(DISTINCT s_id),
                 GROUP_CONCAT(DISTINCT i_id)) AS all_ids
FROM mytable
GROUP BY t_id;
于 2012-10-08T12:32:27.010 に答える