PHP,MySQL - 获取与数组中所有项匹配的行

时间:2013-10-19 21:56:40

标签: php mysql sql

我的查询有问题。我在这里和谷歌搜索但找不到解决方案。我可以使用循环或替代解决方案,但这将意味着耗时(在页面加载时)....所以我想知道是否有“一个查询”解决方案。

我有一个包含4列的表格:

id   class    day    hour
 1   9b3      1      3      
 2   9b4      1      3
 3   9b5      1      3
 4   9b3      1      5
 5   9b4      2      6
 6   9b5      2      6
 7   9b4      4      7
 8   9b3      3      6
 9   9b4      3      6
 10  9b5      3      6

我需要的是恢复在同一天和每小时匹配所有三个类9b3,9b4,9b5的日期和小时。

在上面的示例中,结果应为:

day   hour
1      3
3      6

4 个答案:

答案 0 :(得分:2)

试试这个:

SELECT day,hour
FROM yourTableName
WHERE class IN ('9b3','9b4','9b5')
GROUP BY day,hour
HAVING COUNT(class) = 3;

sqlfiddle demo

答案 1 :(得分:1)

SELECT day,hour FROM table
WHERE class IN('9b3','9b4','9b5')GROUP BY day HAVING COUNT(class)=3;

答案 2 :(得分:1)

也有效......

SELECT day,hour
FROM Table1
WHERE (class = '9b3' or class =  '9b4' or class = '9b5')
GROUP BY day,hour
HAVING COUNT(class) = 3;

答案 3 :(得分:0)

这可以通过使用SQL语句语法来实现,具体取决于您要执行的操作。选择原始数据可以这样做:

SELECT * FROM YourTable
   WHERE day='1' and hour='3'