SQL GROUP_CONCAT的一个例子

我有一个这样的数据库 user_info


SQL GROUP_CONCAT的一个例子_第1张图片


现在有一个需求是把这样 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 -> 数据 -> 分列 -> 按分隔符(,) 就可以了






你可能感兴趣的:(sql,数据库)