我有一个这样的数据库 user_info
现在有一个需求是把这样 9 条记录按照 username 来 group 成3条记录
目标:
Shu female 20 1
Lee male 20 2
Yuki female 18 1
如果用
SELECT *
FROM `user_info`
GROUP BY username
得到的结果为:
可见content是丢了很多信息的
GROUP_CONCAT的作用就出现了
SELECT username, GROUP_CONCAT(content)
FROM `user_info`
GROUP BY username
得到
现在我想把所有 female 的user的content全部取出来,做法是这样的:
SELECT username, GROUP_CONCAT(content)
FROM `user_info`
WHERE username IN (
SELECT DISTINCT username
FROM `user_info`
WHERE content = 'female'
)
GROUP BY username
得到:
最后在导出数据的时候,如果希望GROUP_CONCAT分开,只需要用excel -> 数据 -> 分列 -> 按分隔符(,) 就可以了