mysql 如何分组?
PHP中文网
PHP中文网 2017-07-04 13:43:47
0
2
1074

假设user表

id name group
1 evan admin
1 evan1 admin
1 evan2 admin
1 evan3 user
1 evan4 user

select * from user group by user.group 出来的数据只有2条,而不是 user.groupadmin的一组,user.groupuser 的为一组

求解,mysql 怎么把数组分组?感觉蛮多地方需要用到分组。

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(2)
伊谢尔伦

没有看太懂你的意思,用 group by user.group 就会出现2条,因为你的数据里只有 adminuser 两种 group 数据。

分组 是需要结合 count, sum 等统计方法使用的。

如果你要的是admin的数据在一起,user 的数据在一起,那就直接 order by user.group 就好了

扔个三星炸死你

GROUP BY子句的话,如果只有一个条件的话,只按照该条件满足的所有唯一值,一个为一条数据。对于GROUP BY user.group,你只有两种唯一值:useradmin,所以就只会有两条数据。

如果你想将相同user.group的数据放在一起,正如楼上所说,直接使用排序即可。

如果你想要相同的user.group合并成一行且不丢失user.name数据,可以使用GROUP_CONCAT()函数,将所有组内的name合并成一行且不丢失user.name数据,可以使用GROUP_CONCAT()函数,将所有组内的name合并成逗号分隔的字符串(当然可以改成其他分隔符)

SELECT *, GROUP_CONCAT(user.name) FROM user GROUP BY user.group
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板