2017-02-22 43 views
1

這不屬於任何特定的語言,但邏輯。我只是用SQL作爲一個例子:我有2項條款:AND和或優先

(1),其中A1和A2

(2),其中A1或A2

在(1)的情況下,將查詢停權檢查A1後是否爲假? 在(2)的情況下,查詢A1是否爲真後,查詢會立即停止?

如果有人以前問過,請將此標記爲重複。

謝謝

回答

6

你有錯誤的想法。 SQL查詢代表結果集,而不是發生的處理。所以,where子句並不代表一組特定的指令。這些條款可以以任何順序執行。

也就是說,大多數數據庫都會將這種評估短路。所以執行通常會停止,第一個子句決定條件(true或false)。

2

您所描述的內容稱爲「短路」,我相信它因語言而異,但我知道JavaScript和ColdFusion的行爲都與您描述的方式相同。

SQL是依賴於實現:

https://stackoverflow.com/a/909770/2913684