sql語句中同時使用AND 和 OR 關鍵字即兩者優先順序問題
在ORACLE 資料庫中 通過AND 關鍵字 和 OR同時進行條件查詢時出現了意外的資料,我的sql是這樣的:
select red_book_type ,send_flag from red_mess_stat where red_book_type = ‘1’ or red_book_type = ‘2’ and send_flag = ‘0’
本意是查詢send_flag = ‘0’ 並且 red_book_type = '1’或者’2’的資料,結果查詢結果居然是
RED_BOOK_TYPE | SEND_FLAG |
---|---|
1 | 0 |
1 | 2 |
1 | 1 |
1 | 0 |
1 | 4 |
分析:查詢結果中有1 4 這條記錄可知以上sql等同於
select red_book_type ,send_flag from red_mess_stat where red_book_type = ‘1’ or (red_book_type = ‘2’ and send_flag = ‘0’)
經過測試,加上括號的sql和不加括號sql查詢記錄數一致,可知:
結論: 優先順序 : AND > OR
相關推薦
sql語句中同時使用AND 和 OR 關鍵字即兩者優先順序問題
在ORACLE 資料庫中 通過AND 關鍵字 和 OR同時進行條件查詢時出現了意外的資料,我的sql是這樣的: select red_book_type ,send_flag from red_mess_stat where red_book_type = ‘1
SQL語句中的AND和OR執行順序問題
情景:一個搜尋框 可以同時根據使用者賬號或者使用者名稱字 搜尋匹配條件的使用者 如果搜尋框中沒有搜尋條件 則查出所有教師使用者 遇到的問題: 查詢條件時為輸入框內的內容 先在資料庫中模擬測試 結果
SQL SERVER中的And與Or的優先級
但是 使用 條件 bsp png alt 技術 sele 城市 數據庫中有城市庫表,其中有國家、省、城市。 舉例:在廣東省內(包含廣東省本身),找出名稱為“廣州”的記錄 首先,廣東省內的條件是:ParentId = 2 Or Id =2 名稱為“廣州”的條件是:
python中的and和or用法
在python中and和or返回的值並不是True和false這麼簡單。雖然他們看上去和c++中的&&和||有些相似。在瞭解and和or之前,我們先要了解python中的True和False。 在python裡面,0、’’、[]、()、{}、None為假,其它任何東西都為真。ok,在此前提下
sql語句中的insert 和 insert into 的區別?into有什麼用?
insert into tableName values(........)insert tableName (欄位名1,欄位名2,。。。)values(。。。。。。)看語句結構就知道區別了 。insert into 是直接對應表所有欄位,values裡必須包含所有欄位。insert是指定欄位對應,value
Python中的and和or運算
python中的and和or運算其實和別的語言是一樣的,都遵循下面的原則: a and b:表示的是當a為True時,表示式的結果就是b;當a為False的時候,表示式的結果就是a,注意的是,這時的結果就是a,而a的值不一定是False,例如a=0的時候,a也表示Fals
SQL語句中not in 和not exist的區別
in和exists in 是把外表和內表作hash 連線,而exists是對外表作loop迴圈,每次loop迴圈再對內表進行查詢。一直以來認為exists比in效率高的說法是不準確的。 如果查詢的兩個表大小相當,那麼用in和exists差別不大。 如果兩個表中一個較小,一個是
ABAP 中的 AND和OR
7條資料, WXJ+F = 2條 C 條 6條資料 WXJ+F 2兩條 WXJ+C 4條 所以 OR 如果在括號之內是與其他語句同時過濾生效,如果在括號外面 就單獨生效,她其他條件的結
sql語句中count(1)和count(欄位名)的區別
count(1)會統計包括null值的所有符合條件的欄位的條數 count(欄位名)統計非null值的所有符合條件的欄位的條數 比如: tb_source表中資料 count(1)統計當type=3時source_name的條數 select count(1) from tb_so
SQL 語句中模糊搜尋查詢 LIKE 關鍵字
LIKE 用在 SQL 語句中的 WHERE 語句中 LIKE 的幾個具體運用示例: 1: 搜尋表a 中欄位b中首字母是8的所有資料 SELECT * FROM A WHERE LIKE B='8%' 2: 搜尋表A 中欄位 b 中尾字母
SQL語句中 group by 和 having 的用法
聚合函式:例如SUM, COUNT, MAX, AVG等。這些函式和其它函式的根本區別就是它們一般作用在多條記錄上。 having是分組(group by)後的篩選條件,分組後的資料組內再篩選 where則是在分組前篩選 簡單來說,group by 相當於
sql語句中GROUP BY 和 HAVING的使用 count()
在介紹GROUP BY 和 HAVING 子句前,我們必需先講講sql語言中一種特殊的函式:聚合函式, 例如SUM, COUNT, MAX, AVG等。這些函式和其它函式的根本區別就是它們一般作用在多條記錄上。 SELECT SUM(population) FROM bbc
sql語句中between...and邊界取值的問題
資料庫版本為SQL server2005 select * from table1 where number between 1 and 5 執行這條語句之後的結果是包含了1和5的 select * from table1 where number not b
sql語句中 group by 和 having 的使用
group by name :意為對name進行分組(name表示屬性) group by name having 條件A :意為對name分組後,再根據條件A進行刪選 例子: 表table name course score A
SQL語句中MAX()函式和MIN()函式
MAX 函式返回一列中的最大值。NULL 值不包括在計算中。 SELECT MAX(column_name) FROM table_name 註釋:MIN 和 MAX 也可用於文字列,以獲得按字母
如何用外部程式優化SQL語句中的IN和EXISTS
資料結構 IN 和 EXISTS 是 SQL 中常見的複雜條件,在將 SQL(儲存過程)轉換成庫外計算獲取高效能時也會面對這些問題。本文將以 TPC-H 定義的模型為基礎,介紹如何用集算器的語法實現 IN、EXISTS 並做優化。 TPC-H 是 TPC 事務處理效
sql語句中and和or怎麼同時使用
https://zhidao.baidu.com/question/460772793038730925.html邏輯:(A or B)and C 等於 包含了A和C的結果與B和C的結果; 用括號來代表集區分or 和 and; 其他的邏輯可以在資料庫裡試試,這樣可能自己最清楚
sql的where語句中同時用到 AND 和 OR
PO.ProgressCode = @progressCode AND (PO.ProgressCode = @progressCode OR PO.ProgressCode = ''WORKI
sql中and和or的優先順序
首先and的優先順序大於or,通俗理解其實or查詢其實會把條件分為左右兩邊來查。 如 SELECT * FROM USER WHERE ID =
面試被問之-----sql優化中in與exists的區別 Mysql中 in or exists not exists not in區別 (網路整理) Sql語句中IN和exists的區別及應用 [筆記] SQL效能優化 - 避免使用 IN 和 NOT IN
曾經一次去面試,被問及in與exists的區別,記得當時是這麼回答的:''in後面接子查詢或者(xx,xx,xx,,,),exists後面需要一個true或者false的結果",當然這麼說也不算錯,但別人想聽的是sql優化相關,肯定是效率的問題,只是那個時候確實不知道它們在sql優化上的區別,只知道用in會進