我有以下数据:
<表类>
ID
heade
tbody><<tr>100 蓝色 100 黑色 100 橙色 101 布朗 101 绿色 102 绿色 102 白色 102 黄色 103 黄色 103 蓝色 表类>
SELECT ID, COUNT(DISTINCT heade) AS num_colours
FROM mytable
WHERE heade IN ('blue', 'white')
GROUP BY ID
HAVING num_colours = 2
这可以概括为:
SELECT ID
FROM your_table
WHERE heade IN ('Color1', 'Colo2', 'Color3'......'Colorn')
GROUP BY ID
HAVING COUNT(DISTINCT heade) = n;
您可以传递确切的颜色及其计数为'n'。下面是一个dbfill演示。
当你通过三种颜色时:
SELECT ID
FROM your_table
WHERE heade IN ('blue', 'yellow', 'white')
GROUP BY ID
HAVING COUNT(DISTINCT heade) = 3;
Outout: Empty.
当你通过两种颜色时:
SELECT ID
FROM your_table
WHERE heade IN ('blue', 'yellow')
GROUP BY ID
HAVING COUNT(DISTINCT heade) = 2;
输出:
ID
103
当你通过单一颜色:
SELECT ID
FROM your_table
WHERE heade IN ('blue')
GROUP BY ID
HAVING COUNT(DISTINCT heade) = 1;
输出:
ID
100
103