我有下表:
Products ::= id int, category varchar, line varchar, type varchar, marketType enum('first','second')
我想要做的是查找所有产品的id
列表,其中包含category
,line
,type
; 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
答案 0 :(得分:3)
您可以在使用每组中相等的列对表进行分组时使用MySQL的GROUP_CONCAT()
函数:
SELECT GROUP_CONCAT(id)
FROM Products
GROUP BY category, line, type
在sqlfiddle上查看。