在 MySQL 中,如何从具有相似值的行中选择所有 id

Ada*_*dam 1 mysql

我想提取具有相同用户名的特定行的所有唯一 ID,然后将每个结果显示为一行。

例如...

这是我的表:

+----+------+
| id | name |
+----+------+
| 1  | Joe  |
| 2  | Amy  |
| 3  | Joe  |
| 4  | Amy  |
| 5  | Joe  |
| 6  | Amy  |
+----+------+
Run Code Online (Sandbox Code Playgroud)

这是我想要的结果:

+------+-------+
| name | ids   |
+------+-------+
| Joe  | 1,3,5 |
| Amy  | 2,4,6 |
+------+-------+
Run Code Online (Sandbox Code Playgroud)

如何在 MySQL 中提取此结果?

Kam*_*ski 5

使用GROUP_CONCAT()withDISTINCT子句来聚合特定名称的唯一 ID:

SELECT name, GROUP_CONCAT(DISTINCT id SEPARATOR ',') AS ids
FROM yourtable
GROUP BY name
Run Code Online (Sandbox Code Playgroud)

要查看它的用法,还可以查看MySQL group_concat with select inside select