否定 MySQL 查询的最佳方法是什么,即对于任何条件,强制它不返回任何记录。
我使用过AND 1=0
似乎可行的方法,但我很想知道是否有这样的标准。
只需添加一个false
条件
select * from your_table where false
添加一个总是评估为的内联谓词FALSE
对我来说似乎是最好的方法。“内联”是指您不使用绑定变量。或者,您可以使用
LIMIT 0
这具有更具表现力的优势,但取决于查询优化器的实现,它可能会更慢(未经验证)
您也可以使用AND false
. 不知道这两个选项之间是否有任何性能差异。
在执行之前,您的常量表达式“1 = 0”将被评估为“false”,这只是“0”的别名,因此通过提供最终结果来避免 MySQL 评估表达式会更快、更容易阅读:
AND FALSE