我有这样的查询:
select * from table where rep > 20 and timestamp > now() - 300;
如您所见,有两个条件:
rep > 20
timestamp > now() - 300
现在我需要知道,当select
的结果为0
时,哪个条件会破坏查询,我需要它来管理错误。我想向用户展示他为什么不能投票......我需要理由。那么,有什么建议吗?
答案 0 :(得分:1)
这是不可能的,因为它没有意义。
也许你有rep > 20
的大量行,也许你有timestamp > now() - 300
行,但你没有任何行 {{1 }和rep > 20
。因此,没有“哪个条件打破了查询”,这是两个条件的逻辑组合,打破了查询。
如果您需要调试查询(对于您,作为开发人员),典型的过程是:
timestamp > now() - 300
子句where
子句,再次运行查询where
子句使查询返回零。但同样,最后一个where
条款本身可能完全有效 - 只是在与其他条款结合使用时才会有效。