2008年9月27日土曜日

MySQL 複数の結果を1行にまとめる

各ショップに毎に設備が入った複数レコードがあるとする

shop_id, setsubi_id

1           ,1

1           ,2

1           ,3

みたいなデータがある場合

SELECT shop_id, GROUP_CONCAT(setsubi_id) FROM テーブル

とすることで、コンマ区切りの文字列で

1 (1,2,3)

といった1行のレコードが取得できる。

GROUP_CONCATの引数で、コンマじゃなくて、セパレータは変えれるみたい。

http://dev.mysql.com/doc/refman/4.1/ja/group-by-functions.html

さらに、こいつ(=strとする)を

LOCATE関数にかけて

IF(LOCATE((str),1) > 0, 1,0)とかすると、IDが存在するかチェックできる

のかな?

0 件のコメント:

コメントを投稿