MySQL SELECT 语句按 id 对结果进行分组?
我正在尝试创建一个 MySQL SELECT 语句,该语句将从表中选择一堆行,并按行的 id 对结果进行分组(多行将具有相同的 id)。
这是我正在尝试做的事情的一个例子。假设我有下表:
id | name
1 | Art
1 | Arnold
1 | Anatoly
2 | Beatrice
2 | Bertha
2 | Betty
3 | Constantine
3 | Cramer
我想让 MySQL 返回按 id 分组的数据,如下所示:
[1] => Art, Arnold, Anatoly
[2] => Beatrice, Bertha, Betty
[3] => Constantine, Cramer
我知道我可以执行简单的 SQL 选择,然后在 PHP 中循环结果,但我想让 MySQL如果可能的话处理分组。
I am trying to create a MySQL SELECT statement that will select a bunch of rows from a table and will group the results by the id of the row (multiple rows will have the same id).
Here's an example of what I'm trying to do. Let's say I have the following table:
id | name
1 | Art
1 | Arnold
1 | Anatoly
2 | Beatrice
2 | Bertha
2 | Betty
3 | Constantine
3 | Cramer
I'd like to have MySQL return the data grouped by id like so:
[1] => Art, Arnold, Anatoly
[2] => Beatrice, Bertha, Betty
[3] => Constantine, Cramer
I know I could do a simple SQL select, then loop over the result in PHP, but I'd like to let MySQL handle the grouping if possible.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
一种可能的解决方案是使用 MySQL 的 GROUP_CONCAT (expr) 函数。
但请记住:
One possible solution is to use MySQL's GROUP_CONCAT(expr) function.
But keep in mind: