SQL 语句中 where 条件后 写上1=1 是什么意思
前言
where 1=1是sql語句條件邏輯判斷表達(dá)式,由于1=1成立,恒為真,該表達(dá)式1=1將始終返回"真"。這種寫法實(shí)際目的是為了獲取邏輯值"True",其實(shí)諸如2=2, 1+2=3,'中'='中'等之類的寫法都可以返回邏輯值"True",只不過1=1的運(yùn)算開銷更小,故被應(yīng)用的最普遍。
例子
下面例子將有助于理解有關(guān)概念:
1) select * from t1 where 1=1;
-- 實(shí)際等效于select * from t1 where true;
-- 語句將返回t1中所有的記錄行
2) select * from t1 where 1<>1;
-- 實(shí)際等效于 select * from t1 where false;
-- 語句將返回空記錄集
說明
例1)實(shí)際上等同于不加任何篩選條件,有些畫蛇添足,where 1=1的實(shí)際意義不如where 1<>1來得有用,當(dāng)我們只需要獲取表的字段(結(jié)構(gòu))信息,而不需要理會(huì)實(shí)際保存的記錄時(shí),例2)的寫法將是非常可去取的,因?yàn)橄到y(tǒng)僅會(huì)讀取結(jié)構(gòu)信息,而不會(huì)將具體的表記錄讀入內(nèi)存中,這無疑節(jié)省了系統(tǒng)開銷。
注意事項(xiàng)
這個(gè)SQL語句很明顯是全表掃描,需要大量的IO操作,數(shù)據(jù)量越大越慢,
建議查詢時(shí)增加必輸項(xiàng),即where 1=1后面追加一些常用的必選條件,并且將這些必選條件建立適當(dāng)?shù)乃饕?#xff0c;效率會(huì)大大提高?
總結(jié)
以上是生活随笔為你收集整理的SQL 语句中 where 条件后 写上1=1 是什么意思的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 设计模式之访问者
- 下一篇: SqlBulkCopy只支持SQL Se