假設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.group
為admin
的一組,user.group
為user
的為一組
求解,mysql
怎麼把陣列分組?感覺蠻多地方需要用到分組。
伊谢尔伦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