0

MYSQL でこのようなことを行うにはどうすればよいですか?

user_id  user_group_id   is_primary
1        2               1
1        3               0
1        4               0
2        2               0
2        3               1
3        2               0
3        3               1

のようなものに

user_id   user_group_ids
1         3,4
2         2
3         2

基本的に、ステートメントは次のようになります....

SELECT user_id, user_group_ids FROM tablename WHERE is_primary = 0

したがって、プライマリではないSETを取得して、そこからSETを構築しようとしています。これを SELECT ステートメントで実行したいと考えています。user_group_ids を作成できるようにする select ステートメントは、別のテーブルに user_group_ids レコードを設定するために使用されます。

これどうやってするの?

4

2 に答える 2

2
SELECT
   user_id,
   GROUP_CONCAT(user_group_id) as user_group_id
FROM mytable
WHERE is_primary = 0
GROUP BY user_id

デモはこちら

于 2013-01-23T04:10:44.143 に答える
0

使用できます

SELECT user_id, group_concat(user_group_ids) as user_group_ids 
FROM tablename 
WHERE is_primary = 0 
GROUP BY user_id

これにより、user_group_ids が user_id ごとにグループ化されます

于 2013-01-23T04:11:08.307 に答える