GROUPCONCATを使って複数行のカラムを一つにまとめた時の全文表示方法
mysqlで登録ユーザーの趣味の情報をセレクトしてくる際に、一人が多くの趣味を登録していたため一度に情報を引っ張ってこれませんでした。
つまりGROUP BYするとユーザー、一人につき一つの趣味しか表示することができない...
言葉ではうまく伝えられないのでuserテーブルの構造を載せます
上記を見ると、ユーザーID35番の人は2,7,14,21の趣味を持っている(2はお酒、7は野球観戦などと決めている)
しかしユーザーID35番でGROUP BYするとすべてまとまってしまい2(お酒)しか取り出すことができない
理想は2/7/14/21と表示されることです...
ここでGROUPCONCAT
db_function.php
$SQL = "SELECT GROUP_CONCAT(carevery_id separator '/') FROM user where user_id = '35' GROUP BY user_id"
上記のように書くと2/7/14/21と取り出すことができます
またseparatorの後ろ('/')の部分を変えることで区切り文字を変更することも可能です
はっきり言ってめちゃくちゃ便利なので皆さん是非とも活用してください。
以上です。
少しでもお役に立てれば幸いです。
何か間違っている部分等御座いましたら、ご意見よろしくお願いします!
