MYSQL where 1=1判定中的作用說明
更新時(shí)間:2011年09月16日 17:00:42 作者:
最近看到很多sql里用到where 1=1,原來覺得這沒用嘛,但是又想到如果沒用為什么要寫呢?
于是在網(wǎng)上
查了查,在這里就淺談一下:
1=1 永真, 1<>1 永假。
1<>1 的用處:
用于只取結(jié)構(gòu)不取數(shù)據(jù)的場(chǎng)合
例如:
create table table_temp tablespace tbs_temp as
select * from table_ori where 1<>1
建成一個(gè)與table_ori 結(jié)構(gòu)相同的表table_temp,但是不要table_ori 里的數(shù)據(jù)。(除了表結(jié)構(gòu),其它結(jié)
構(gòu)也同理)
1=1的用處
用于動(dòng)態(tài)SQL
例如 lv_string := ‘select tbl_name,tbl_desc from tbl_test where 1=1 ‘||l_condition;
當(dāng)用戶選擇了查詢的名稱'abc'時(shí)l_condition :='and tbl_name = ”abc””;但是當(dāng)用戶沒有
選擇名稱查詢時(shí)l_condition就為空 這樣 lv_string = ‘select tbl_name,tbl_desc from tbl_test
where 1=1 ‘ ,運(yùn)行也不會(huì)出錯(cuò),相當(dāng)于沒有限制名稱條件。但是如果沒有1=1的條件,則lv_string =
‘select tbl_name,tbl_desc from tbl_test where ‘;這樣就會(huì)報(bào)錯(cuò)。
除了1=1 或1<>1之外的其它永真永假的條件同理。
查了查,在這里就淺談一下:
1=1 永真, 1<>1 永假。
1<>1 的用處:
用于只取結(jié)構(gòu)不取數(shù)據(jù)的場(chǎng)合
例如:
create table table_temp tablespace tbs_temp as
select * from table_ori where 1<>1
建成一個(gè)與table_ori 結(jié)構(gòu)相同的表table_temp,但是不要table_ori 里的數(shù)據(jù)。(除了表結(jié)構(gòu),其它結(jié)
構(gòu)也同理)
1=1的用處
用于動(dòng)態(tài)SQL
例如 lv_string := ‘select tbl_name,tbl_desc from tbl_test where 1=1 ‘||l_condition;
當(dāng)用戶選擇了查詢的名稱'abc'時(shí)l_condition :='and tbl_name = ”abc””;但是當(dāng)用戶沒有
選擇名稱查詢時(shí)l_condition就為空 這樣 lv_string = ‘select tbl_name,tbl_desc from tbl_test
where 1=1 ‘ ,運(yùn)行也不會(huì)出錯(cuò),相當(dāng)于沒有限制名稱條件。但是如果沒有1=1的條件,則lv_string =
‘select tbl_name,tbl_desc from tbl_test where ‘;這樣就會(huì)報(bào)錯(cuò)。
除了1=1 或1<>1之外的其它永真永假的條件同理。
相關(guān)文章
PHP mysqli 增強(qiáng) 批量執(zhí)行sql 語句的實(shí)現(xiàn)代碼
本篇文章介紹了,在PHP中 mysqli 增強(qiáng) 批量執(zhí)行sql 語句的實(shí)現(xiàn)代碼。需要的朋友參考下2013-05-05Linux mysql命令安裝允許遠(yuǎn)程連接的安裝設(shè)置方法
對(duì)大家推薦很好使用的Linux mysql系統(tǒng),像讓大家對(duì)Linux mysql系統(tǒng)有所了解,然后對(duì)Linux mysql系統(tǒng)全面講解介紹,希望對(duì)大家有用今天特意配置了mysql apache php ,雖然網(wǎng)上很多這方面的例子,但是很多是作者再回憶寫的,所以難免有筆誤的地方。2010-08-08MySQL批量導(dǎo)入Excel數(shù)據(jù)(超詳細(xì))
這篇文章主要介紹了MySQL批量導(dǎo)入Excel數(shù)據(jù)(超詳細(xì)),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下,希望對(duì)你的學(xué)習(xí)有所幫助2022-08-08CentOS 6.6 源碼編譯安裝MySQL 5.7.18教程詳解
這篇文章主要介紹了CentOS 6.6 源碼編譯安裝MySQL 5.7.18教程詳解,需要的朋友可以參考下2017-07-07MySQL高級(jí)特性——數(shù)據(jù)表分區(qū)的概念及機(jī)制詳解
當(dāng)數(shù)據(jù)表過大時(shí),通過普通的查詢優(yōu)化技巧已經(jīng)無法大幅度提升性能,此時(shí)往往需要進(jìn)行分區(qū)分表優(yōu)化。分區(qū)其實(shí)是將一張邏輯上統(tǒng)一的表在物理上劃分成了多張表。分區(qū)操作對(duì)使用者而言是一個(gè)黑盒操作,但是如果你從文件系統(tǒng)上看,就會(huì)看到分區(qū)數(shù)據(jù)表的實(shí)際存儲(chǔ)方式是分開的。2021-05-05SQL HAVING子句在GROUP BY中的條件篩選靈活運(yùn)用
這篇文章主要為大家介紹了SQL HAVING子句在GROUP BY中的條件篩選靈活運(yùn)用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11MySQL千萬級(jí)數(shù)據(jù)的大表優(yōu)化解決方案
mysql數(shù)據(jù)庫(kù)中的表數(shù)據(jù)量幾千萬后,查詢速度會(huì)很慢,日常各種卡慢,嚴(yán)重影響使用體驗(yàn)。在考慮升級(jí)數(shù)據(jù)庫(kù)或者換用大數(shù)據(jù)解決方案前,必須優(yōu)化現(xiàn)有mysql數(shù)據(jù)庫(kù)表設(shè)計(jì)和sql語句。2022-11-11