语法
GROUP_CONCAT(
[DISTINCT] 需要组合的行
[ORDER BY] 排序
[SEPARATOR 分隔符]
);
表的基本信息
name为分组依据,将money 组合在一起
SELECT `name`,GROUP_CONCAT(money)
FROM money
GROUP BY `name`
group_concat(money) 表示组合money字段
没有 DISTINCT 表示不需要去重
没有指定order by 表示不需要排序
没有指定SEPARATOR 表示分隔符默认为逗号
查询结果
添加 DISTINCT
DISTINCT 表示去除重复
SELECT `name`,GROUP_CONCAT(DISTINCT money)
FROM money
GROUP BY `name`
查询结果
添加order by
SELECT `name`,GROUP_CONCAT(
DISTINCT money
ORDER BY money DESC
)
FROM money
GROUP BY `name`
注意
group_concat的排序是对进行组合的字段排序
这里是对money字段进行组合,所以对money排序有效,对name无效
注意下面四幅图的区别
对name的排序应该在sql语句最后
SELECT `name`,GROUP_CONCAT(
DISTINCT money
ORDER BY `money` DESC
)
FROM money
GROUP BY `name`
ORDER BY `name` DESC
查询结果
添加SEPARATOR
不添加,默认为逗号
SELECT `name`,GROUP_CONCAT(
DISTINCT money
ORDER BY `money` DESC
SEPARATOR '-'
)
FROM money
GROUP BY `name`
ORDER BY `name` DESC
查询结果