SQL 條件語句的執行順序

2021-07-28 14:20:07 字數 596 閱讀 2451

語句1:

select *

from 

work_order_list 

where 

head_corp_id = 1

and work_order_state in (1,2) 

and receiving_id is null or receiving_id = 27

語句2:

select * 

from 

work_order_list 

where head_corp_id = 1 

and receiving_id is null or receiving_id = 27 

and work_order_state in (1,2)

在執行sql語句時,資料庫中通過receiving_id is null or receiving_id = 27可獲取3條資料,work_order_state in (1,2)可獲取2條資料,

當我使用語句1獲取到了兩條資料,使用語句2獲取到了三條資料。

理由是:sql解析器採用自下而上的順序解析where子句,通過此原理可以通過將查詢條件範圍小的語句靠近where,來實現優化。

sql語句中的where條件執行順序

語句1 select from work order list where head corp id 1 and work order state in 1,2 and receiving id is null or receiving id 27 語句2 select from work orde...

SQl語句執行順序

在程式設計的時候,每個語言的一行 都是有執行順序,比如從右往左或者從左往右,在大部分的時候是不影響,但有些時候,執行順序卻有非常大的影響。int i 0 if i 0 i 0 if i 0 i 0 第一種情況會執行,第二種情況不會執行,因為判斷是從右往左判斷,條件不成立馬上就結束,第二種情況先判斷i...

SQL語句執行順序

1 from 子句,組裝來自不同資料來源的資料 2 where 子句,基於指定的條件對記錄進行篩選 3 group by 子句,將資料劃分為多個分組 4 使用聚合函式進行計算 5 使用 h ing 子句篩選分組 6 計算所有的表示式 7 使用 order by 對結果集進行排序 select dis...