搜尋

首頁  >  問答  >  主體

mysql 如何分組?

假設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中文网2704 天前1069

全部回覆(2)我來回復

  • 伊谢尔伦

    伊谢尔伦2017-07-04 13:45:47

    沒有看太懂你的意思,用 group by user.group 就會出現2條,因為你的資料裡只有 adminuser 兩種 group 資料。

    分組 是需要結合 count, sum 等統計方法使用的。

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

    回覆
    0
  • 扔个三星炸死你

    扔个三星炸死你2017-07-04 13:45:47

    GROUP BY子句的話,如果只有一個條件的話,只按照該條件滿足的所有唯一值,一個為一條數據。對於GROUP BY user.group,你只有兩種唯一值:useradmin,所以只會有兩個資料。

    如果你想將相同user.group的資料放在一起,正如樓上所說,直接使用排序即可。

    如果你想要相同的user.group合併成一行且不遺失user.name數據,可以使用GROUP_CONCAT()函數,將所有群組內的name合併成逗號分隔的字串(函數,將所有群組內的

    name🎜合併成逗號分隔的字串(函數,將所有群組內的🎜name🎜合併成逗號分隔的字串(函數,將所有群組內的🎜name🎜合併成逗號分隔的字串(函數,將所有群組內的🎜name🎜合併成逗號分隔的字串(函數當然可以改成其他分隔符號)🎜
    SELECT *, GROUP_CONCAT(user.name) FROM user GROUP BY user.group

    回覆
    0
  • 取消回覆