PHP,MySQL-从数组中获取与所有项匹配的行
我有一个疑问。我在这里和谷歌上搜索过,但没有找到解决方案。我可以使用循环或替代解决方案来完成,但这将意味着需要花费时间(页面加载)。。。。因此,我想知道是否有“一个查询”的解决方案 我有一个包含4列的表:PHP,MySQL-从数组中获取与所有项匹配的行,php,mysql,sql,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
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;
这可以通过使用SQL语句语法简单地实现,具体取决于要执行的操作。挑选原始数据可以这样做:
SELECT * FROM YourTable
WHERE day='1' and hour='3'
这也行
SELECT day,hour
FROM Table1
WHERE (class = '9b3' or class = '9b4' or class = '9b5')
GROUP BY day,hour
HAVING COUNT(class) = 3;
这里有一个以前已经回答过的类似问题:您指向我的链接正在工作。。。。只要您需要匹配数组中的一个元素。我想要的是找到所有元素都具有相同值的日期和时间,而不是“数组中的至少一个元素”。希望你能理解我拙劣的英语这部作品!拥有计数(类)=3是解决方案。谢谢!只按天分组不起作用。但是,每天使用组,小时是有效的!
SELECT day,hour
FROM Table1
WHERE (class = '9b3' or class = '9b4' or class = '9b5')
GROUP BY day,hour
HAVING COUNT(class) = 3;