如果SQL查询的where子句中有多个条件和条件,如果第一个条件为记录找到false,那么它是否会检查另一个条件和条件。
在编程中,我们使用&&操作符来检查多个条件,如果第一个条件被发现为false,那么它就不属于另一个条件,那么我的查询是它是否也适用于SQL条件?
示例:
Select * from tablename where column is not null and column > 0 and column <> 1发布于 2016-10-27 07:25:04
SQL是声明性的。不是程序上的。
优化器可以使用短路评估,也可以不使用短路评估。
它也可能把它转化成不同的东西。如果column是整数类型,则所有三种条件都折叠为
WHERE column > 1类似地,优化器可能会发现,通过查询中的check约束或其他谓词,可以保证某些条件为true或false,并且根本不需要计算。或者使用保证所有行与谓词的一部分匹配的访问路径(如筛选索引),因此不需要运行时计算。
发布于 2016-10-27 07:30:55
它会看起来像这样
SELECT * FROM tablename
WHERE (column != null AND column <> 1) AND (column > 0)https://stackoverflow.com/questions/40278479
复制相似问题