【MYSQL】 GROUP_CONCATでINT型を用いる

前回の日記でGROUP_CONCATがうまくいかないと言ってましたが自己解決しました。

さて、そもそもGROUP_CONCATというのはSTRING型を扱うものでINT型は扱わないらしい。
うん、ここから間違えてたんだね・・・。

っていうことで、SQL文を変更。
GROUP_CONCATに入れる引数がINT型である場合はCAST()関数を使用します。

NoというカラムがINT型である場合を例にすると
GROUP_CONCAT(CAST(No AS CHAR))
と書きます。

で、さらにNoの値でソートしたい場合は
GROUP_CONCAT(CAST(No AS CHAR) ORDER BY No)
と書けばOK

実際にプログラムで用いたSQL文がこちら。
SELECT Group,GROUP_CONCAT(CAST(No AS CHAR) ORDER BY No) FROM Book_list GROUP BY Group

これで

という風に表示できました。

コメントを書く

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です