mysql查询返回匹配元素列表的列表

时间:2012-09-14 14:53:30

标签: mysql sql

我有下表:

Products ::=
  id         int,
  category   varchar,
  line       varchar,
  type       varchar,
  marketType enum('first','second')

我想要做的是查找所有产品id列表,其中包含categorylinetype; line也可以是NULL或空字符串。

示例:

+------+----------+--------+------+
|   id | category |   line | type |
+------+----------+--------+------+
|  123 |        1 | qwerty |    X |
|  534 |        1 | qwerty |    X |
|   90 |        1 | qwerty |    Z |
|  666 |        2 | qwerty |    Z |
|  444 |        2 | qwerty |    Z |
| 1616 |        2 | qwerty |    Z |
|  921 |        2 |        |    X |
|   16 |        2 |        |    X |
+------+----------+--------+------+

我想要完成的结果是一个列表,其中每个元素都是匹配的id的列表:

123, 534
90
666, 444, 1616
921, 16

1 个答案:

答案 0 :(得分:3)

您可以在使用每组中相等的列对表进行分组时使用MySQL的GROUP_CONCAT()函数:

SELECT   GROUP_CONCAT(id)
FROM     Products
GROUP BY category, line, type

sqlfiddle上查看。