1

我有下表:

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

我想要做的是找到id所有具有相同, , ;的产品的列表 也可以是或空字符串。categorylinetypelineNULL

例子:

+--------+----------+--------+------+
| 编号 | 类别 | 线 | 类型 |
+--------+----------+--------+------+
| 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 |
+--------+----------+--------+------+

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

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

1 回答 1

3

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

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

sqlfiddle上查看。

于 2012-09-14T14:57:18.553 回答