获取SQL数据(如果具有特定值)

时间:2018-09-07 09:12:12

标签: mysql sql

我有这张桌子:

id           device         createdAt                 type
1            700           2018-09-06 10:00:00        atos
2            700           2018-09-06 09:30:00        farkos

这个想法是要验证在过去的x个小时中,我在此表中是否仅包含数据type = atos

对于这种情况,我想得到一个false作为结果。如果此表在最近的h小时内仅包含type = atos,则预期结果应为true。

我这样尝试过,之后用php检查,但不是一个好主意(我只想在sql中做),没有其他处理方法:

SELECT * FROM table t 
WHERE t.device = 700 
AND t.createdAt >= '2018-09-05 11:00:00'

2 个答案:

答案 0 :(得分:2)

此查询将执行您想要的操作。它查看指定时间内的所有条目,如果其中任何一个不是atos,将返回0(假)。否则将返回1(真)。

SELECT MIN(CASE WHEN t.type != 'atos' THEN 0 ELSE 1 END) 
FROM table1 t
WHERE t.device = 700 AND t.createdAt >= '2018-09-05 11:00:00'

如果要检查最近的h小时,请将WHERE子句更改为

WHERE t.device = 700 AND t.createdAt >= NOW() - INTERVAL h HOUR

答案 1 :(得分:1)

在以下情况下的用例:

for page_number, page in enumerate(pdf_doc.get_pages()):
    tables = page_to_tables(page)
    print(tables)

按设备ID分组