0

否定 MySQL 查询的最佳方法是什么,即对于任何条件,强制它不返回任何记录。

我使用过AND 1=0似乎可行的方法,但我很想知道是否有这样的标准。

4

4 回答 4

1

只需添加一个false条件

select * from your_table where false
于 2012-04-23T11:33:35.160 回答
1

添加一个总是评估为的内联谓词FALSE对我来说似乎是最好的方法。“内联”是指您不使用绑定变量。或者,您可以使用

LIMIT 0

这具有更具表现力的优势,但取决于查询优化器的实现,它可能会更慢(未经验证)

于 2012-04-23T11:34:29.827 回答
0

您也可以使用AND false. 不知道这两个选项之间是否有任何性能差异。

于 2012-04-23T11:33:57.603 回答
0

在执行之前,您的常量表达式“1 = 0”将被评估为“false”,这只是“0”的别名,因此通过提供最终结果来避免 MySQL 评估表达式会更快、更容易阅读:

AND FALSE
于 2012-04-23T12:01:47.520 回答