我有这张桌子:
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'
答案 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分组