否定MySQL查询

否定MySQL查询,mysql,null,Mysql,Null,否定MySQL查询的最佳方法是什么,也就是说,对于任何条件,强制它不返回任何记录 我使用了和1=0,这似乎很有效,但我想知道是否有这样的标准。只需添加一个false条件 select * from your_table where false 您还可以使用和false。不知道这两个选项之间是否存在性能差异。添加一个总是计算为FALSE的内联谓词对我来说似乎是最好的方法。通过“内联”,我的意思是您不使用绑定变量。或者,您可以使用 LIMIT 0 这样做的优点是更具表现力,但取决于查询优化程序的

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


我使用了
和1=0
,这似乎很有效,但我想知道是否有这样的标准。

只需添加一个
false
条件

select * from your_table where false

您还可以使用
和false
。不知道这两个选项之间是否存在性能差异。

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

LIMIT 0
这样做的优点是更具表现力,但取决于查询优化程序的实现,它可能会更慢(未经验证)

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

AND FALSE

您也可以不执行查询?@vartec:重点可能是从一些表限制0@vartec获取表类型,即
SELECT*等查询的元数据。重点是脚本非常大,这是一种快速解决方法,不需要重新分解代码。
1=0
和false
在这里看起来都是有效的选项。