使用GROUP_CONCAT中的条件

时间:2016-11-21 22:07:36

标签: mysql

我有以下数据库:

+-------+-------------+---------+
| 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 ', ')

1 个答案:

答案 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语句中。