Heim > Fragen und Antworten > Hauptteil
Benutzertabelle übernehmen
id | Name | Gruppe |
---|---|---|
1 | evan | admin |
1 | evan1 | admin |
1 | evan2 | admin |
1 | evan3 | Benutzer |
1 | evan4 | Benutzer |
select * from user group by user.group
出来的数据只有2条,而不是 user.group
为admin
的一组,user.group
为 user
ist eine Gruppe
Lösung, mysql
Wie gruppiere ich Arrays? Es scheint, als gäbe es viele Orte, an denen eine Gruppierung erforderlich ist.
伊谢尔伦2017-07-04 13:45:47
没有看太懂你的意思,用 group by user.group
就会出现2
条,因为你的数据里只有 admin
和 user
两种 group
数据。
分组
是需要结合 count
, sum
等统计方法使用的。
如果你要的是admin
的数据在一起,user
的数据在一起,那就直接 order by user.group
就好了
扔个三星炸死你2017-07-04 13:45:47
用GROUP BY
子句的话,如果只有一个条件的话,只按照该条件满足的所有唯一值,一个为一条数据。对于GROUP BY user.group
,你只有两种唯一值:user
和admin
,所以就只会有两条数据。
如果你想将相同user.group
的数据放在一起,正如楼上所说,直接使用排序即可。
如果你想要相同的user.group
合并成一行且不丢失user.name
数据,可以使用GROUP_CONCAT()
函数,将所有组内的name
合并成逗号分隔的字符串(当然可以改成其他分隔符)
SELECT *, GROUP_CONCAT(user.name) FROM user GROUP BY user.group