我有以下数据库:
+-------+-------------+---------+
| id | Name | Quantity|
+-------+-------------+---------+
| 1 | Anna | 0 |
| 2 | John | 5 |
| 3 | Anna | 3 |
+-------+-------------+------+
我正在使用此查询:
SELECT name, GROUP_CONCAT(DISTINCT quatity SEPARATOR ', ')
FROM table
GROUP BY name;
结果我得到了这个:
安娜:0,3 约翰:5
但是我想要这样的东西:
安娜:3(我不想显示 数量= 0 )
约翰:5
我尝试了这个,但它不起作用:
GROUP_CONCAT(DISTINCT
CASE
WHEN quantity > 0 THEN name
else null
END
ORDER BY name ASC SEPARATOR ', ')
答案 0 :(得分:1)
有人建议这样做,但我会在答案中说明:
SELECT id, name, GROUP_CONCAT(DISTINCT quantity SEPARATOR ', ')
FROM table
WHERE quantity > 0
GROUP BY id, name;
此外,您似乎有一些拼写错误的数量*和ID *而不是文章编号,至少根据您的表格。另外,我建议将id和name放在select语句和group by语句中。