我們使用SQL查詢來根據dateFrom和dateTo字段進行搜索。因爲我使用的「大於等於(> =)」和「」小於等於(< =)「運算符來搜索日期字段。某處我還發現我們也可以使用SQL「」之間的「操作符來做同樣的事情。只是想確認當我們使用「之間」運營商和當我們使用「(> = & < =)」運營商時是否有任何區別。SQL之間的差異在運算符和「> =」&「<=」運算符之間
回答
現代數據庫附帶非常聰明的查詢執行優化器。他們的主要特徵之一是查詢轉換。 邏輯上等價的表達式通常可以相互轉換。例如正如安東尼所說,BETWEEN
算子可以被Oracle(和MySQL)重寫爲兩個AND
連接的比較,反之亦然,如果BETWEEN
不只是作爲語法糖實現的話。所以即使會有差異(在性能上),您也可以放心,Oracle很可能會選擇更好的選項。
這意味着您可以自由選擇您的偏好,例如由於可讀性。
注意:它並不總是顯而易見的,在邏輯上等價。查詢轉換規則在轉換時變得更復雜EXISTS
,IN
,NOT EXISTS
,NOT IN
......但在這種情況下,它們是。有關詳細信息讀取規格(謂語之間章節8.3):
謝謝@盧卡斯埃德爾 – 2011-06-15 09:13:51
不這樣做沒有區別(使用ORACLE時),但使用BETWEEN運算符是比較範圍值的更優雅方式。
沒有區別。
(x BETWEEN y AND z)
是一樣的書寫
((x >= y) AND (x <= z))
謝謝@AnthonyFaull – 2011-06-15 07:35:07
- 1. 運算符「==」和「=」之間的差異運算符「==」和「=」之間的差異「==」和「=」
- 2. 在MySQL和IN運算符之間有任何性能差異
- 3. Oracle之間的字符值運算符
- 4. 位運算和booolean運營商之間的差異 '與'
- 5. C++重載運算符<<和運算符>>
- 6. 比較T-SQL與'<' '>'運算符的性能差異?
- 7. DocumentDB查詢中的運算符之間
- 8. mysql之間的運算符與日期
- 9. 計算兩列之間的差異sql
- 10. 數組和矩陣運算符之間是否存在性能差異?
- 11. 運算符之間使用列(+)
- 12. Python中兩個對象之間的運算符和/或運算符
- 13. C中的If-Else和Ternary運算符之間的速度差異?
- 14. >><<和運算符重載
- 15. 按位運算符「>>」和「<<」?
- 16. Ruby中的字符串運算符+和<<之間的區別
- 17. 後增量和增量前運算符之間的性能差異?
- 18. 默認和賦值運算符之間的PL/SQL區別
- 19. 算術運算符^和。^之間的區別是什麼?
- 20. PHP中的「不等於」運算符<>和!=之間的區別
- 21. 按位運算符的輸出之間的差別
- 22. Ruby運算符差異
- 23. 減法運算符號和符號之間的區別
- 24. ' - >'(箭頭運算符)和'。'之間的區別是什麼? (點運算符)在Objective-C?
- 25. PHP:差異之間 - >和::
- 26. ->運算符與指針之間的區別*(C++)
- 27. C++運算符「<" and ">」
- 28. PHP運算符<>
- 29. sql否定運算符:!= vs <>
- 30. 定時運算符+,運算符,運算符*和運算符/
的數據庫供應商您使用的?它有所作爲。 – 2011-06-15 07:24:40
@ j.w.r我正在使用MYSQL進行開發,對於生產它是Oracle。 – 2011-06-15 07:31:18
Informix,DB2,PostreSQL,MySQL,Sqlite,MS Sql Server,Oracle ...都是包容性的,但是我可以發誓有一個並不是一個點。所以,正如其他人所指出的那樣,你應該沒問題。 :) – 2011-06-15 07:42:38