我们使用SQL查询来搜索dateFrom和dateTo字段.因为我使用" 大于等于(> =) "和" 小于等于(<=) "运算符来搜索日期字段.某处我也发现我们也可以使用SQL" Between "运算符来做同样的事情.只是想确认当我们使用" Between "运算符和使用" (> =&<=) "运算符时有什么区别.
没有区别.
(x BETWEEN y AND z)
Run Code Online (Sandbox Code Playgroud)
和写作一样
((x >= y) AND (x <= z))
Run Code Online (Sandbox Code Playgroud)
现代数据库配备了非常智能的查询执行优化器。它们的主要功能之一是查询转换。逻辑上等价的表达式通常可以相互转换。例如,正如 Anthony 所建议的,如果不只是将运算符实现为语法糖,BETWEEN则 Oracle(和 MySQL)可以将运算符重写为两个AND连接的比较,反之亦然。BETWEEN
因此,即使存在差异(性能方面),您也可以放心,Oracle 很可能会选择更好的选项。
这意味着您可以自由选择您的偏好,例如因为可读性。
注意:逻辑上等价的东西并不总是显而易见的。当涉及到转换EXISTS, IN, NOT EXISTS, NOT IN... 时,查询转换规则变得更加复杂,但在本例中,它们确实如此。有关更多详细信息,请阅读规范(第 8.3 章谓词之间):
http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt
| 归档时间: |
|
| 查看次数: |
1460 次 |
| 最近记录: |