1. 程式人生 > >儘量避免在SQL語句中使用OR

儘量避免在SQL語句中使用OR

----start

    在SQL語句中應該儘量避免使用OR,因為這樣做會影響SQL語句的效能。考慮下面的情況:

 

現在有這樣一個問題:讓你查詢一下生日是1949-10-1(共和國同齡人)1978-12-18(十一屆三中全會召開時間)的人,怎麼辦?

我們很自然就會把這句話翻譯成如下SQL語句:

 

這樣做完全正確,可是效能不好,你的思想被這個問題束縛了,我們還可以這麼寫:

 

有時候,我們不要把自己束縛在問題裡面。

----宣告:轉載請註明出處。

----last updated on 2009.9.24

----written by ShangBo on 2009.9.24

----end

相關推薦

儘量避免SQL語句使用OR

----start     在SQL語句中應該儘量避免使用OR,因為這樣做會影響SQL語句的效能。考慮下面的情況: CREATE TABLE USER ( NAME VARCHAR(20) NOT NULL,---姓名 BIRTHDAY DATE---生日 );  現在有這

面試被問之-----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會進

sql語句避免使用mysql函數,提升mysql處理能力。

語句 效率 eat mysql內置函數 服務 時間差 span 統一 ins 如下sql中不要用mysql內置函數now()等,這樣第一可以提高sql執行效率,第二統一程序層處理sql中時間參數,避免因服務器時間差導致問題產生。 使用PDO預處理,第一可以提高sql效率,

sql語句and和or怎麼同時使用

https://zhidao.baidu.com/question/460772793038730925.html邏輯:(A or B)and C 等於 包含了A和C的結果與B和C的結果; 用括號來代表集區分or 和 and; 其他的邏輯可以在資料庫裡試試,這樣可能自己最清楚

SQL語句的AND和OR執行順序問題

情景:一個搜尋框 可以同時根據使用者賬號或者使用者名稱字 搜尋匹配條件的使用者 如果搜尋框中沒有搜尋條件 則查出所有教師使用者 遇到的問題: 查詢條件時為輸入框內的內容 先在資料庫中模擬測試 結果

SQL語句or、in、and

今天做專案需要根據使用者輸入的資訊進行過濾,但不確定是哪個欄位的值, 因此需要用到查詢語句SQL中的or關鍵字 由於第一次使用,不熟悉,導致出現了問題,網上檢索後才知道是因為優先順序的問題 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 的優先級

com info ima .com 分享 src 技術分享 sql 語句 sql語句中 and 與or 的優先級

sql語句where 1=1和 0=1 的作用

代碼 address .com style 語句 reat www new add sql where 1=1和 0=1 的作用 where 1=1; 這個條件始終為True,在不定數量查詢條件情況下,1=1可以很方便的規範語句。 一、不用where 1=1 在

Sql語句IN和exists的區別及應用

應用場景 將不 集中 pre 代碼 根據 gif 效率 .cn   表展示     首先,查詢中涉及到的兩個表,一個user和一個order表,具體表的內容如下:     user表:          order表:        in     確定給定的值是否與子查

sql語句left join、right join、inner join的區別

select http img image ner -s style nbsp color left join(左聯接) 返回包括左表中的所有記錄和右表中聯結字段相等的記錄; right join(右聯接) 返回包括右表中的所有記錄和左表中聯結字段相等的記錄;inner j

SQl語句使用占位符的優點

date 註入 了解 運行環境 可讀性 統計信息 浪費 cut val 1.增加SQL代碼可讀性2.占位符可以預先編譯,提高執行效率3.防止SQL註入4用占位符的目的是綁定變量,這樣可以減少數據SQL的硬解析,所以執行效率會提高不少 綁定變量是Oracle解決硬解析的首

sql語句where 1=1和1=0的作用

lec 動態sql select語句 link 最終 ble 用戶 作用 並且 一、不用where 1=1 在多條件查詢中的困擾   舉個例子,如果您做查詢頁面,並且,可查詢的選項有多個,同時,還讓用戶自行選擇並輸入查詢關鍵詞,那麽,按平時的查詢語句的動態構造,代碼大體如

在T-SQL語句訪問遠程數據庫

school 本地 customer its date rom rowset update 登陸名 1、啟用Ad Hoc Distributed Queries 在使用openrowset/opendatasource前搜先要啟用Ad Hoc Distributed Que

SQL語句exists和in的區別

splay 比較 server for target 空值 不存在 依次 第一個 轉自https://www.cnblogs.com/liyasong/p/sql_in_exists.html 和 http://blog.csdn.net/lick4050312/artic

MyBatis Sql語句的轉義字符

org align eating parse exc 大於號 cin bat 轉義 1、在xml的sql語句中,不能直接用大於號、小於號要用轉義字符 如果用小於號會報錯誤如下: org.apache.ibatis.builder.BuilderException: Erro

封裝sql語句in限制查詢個數的方法

sel rim () each tar blog and style months /* * 此方法用於每天淩晨取前一天的回滾用戶賬號 */ public function getRollBackAccount($startTime

SQL語句----刪除表數據drop、truncate和delete的用法

ali index invalid 表結構 back 標識 -- 等保 convert 一、SQL中的語法 1、drop table 表名稱 eg: drop table dbo.Sys_Test 2、trunca

sql語句 把varchar類型轉換成int

order rom sel asc col pre cas tab clas // sql語句 中把varchar類型轉換成int select * from tableName order by cast(result as SIGNED INTEGER) asc;

SQL語句有關單引號、雙引號和加號的問題

類型 OS clas 條件 分析 student 條件查詢 log div 字符串數據是用單引號包在外面的,而+號只是用來連接這些字符串的. 數據庫裏的字段是整型的時候不要加單引號,是字符串的時候要加,其它類型根據實際情況來,雙引號就是用來拼接字符串的,單引號是sql文的固