繁体   English   中英

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

[英]PHP, MySQL - Get rows matching all items from an array

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

我有一个包含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

试试这个:

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

sqlfiddle演示

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

也有效......

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM