1. 程式人生 > 資料庫 >SQL 語句中 where 條件後 寫上1=1 是什麼意思

SQL 語句中 where 條件後 寫上1=1 是什麼意思

前言

where 1=1是sql語句條件邏輯判斷表示式,由於1=1成立,恆為真,該表示式1=1將始終返回"真"。這種寫法實際目的是為了獲取邏輯值"True",其實諸如2=2, 1+2=3,'中'='中'等之類的寫法都可以返回邏輯值"True",只不過1=1的運算開銷更小,故被應用的最普遍。

 

例子

下面例子將有助於理解有關概念:

1) select * from t1 where 1=1;

-- 實際等效於select * from t1 where true;

-- 語句將返回t1中所有的記錄行

2) select * from t1 where 1<>1;

-- 實際等效於 select * from t1 where false;

-- 語句將返回空記錄集

 

說明

例1)實際上等同於不加任何篩選條件,有些畫蛇添足,where 1=1的實際意義不如where 1<>1來得有用,當我們只需要獲取表的欄位(結構)資訊,而不需要理會實際儲存的記錄時,例2)的寫法將是非常可去取的,因為系統僅會讀取結構資訊,而不會將具體的表記錄讀入記憶體中,這無疑節省了系統開銷。

 

注意事項

這個SQL語句很明顯是全表掃描,需要大量的IO操作,資料量越大越慢,

建議查詢時增加必輸項,即where 1=1後面追加一些常用的必選條件,並且將這些必選條件建立適當的索引,效率會大大提高 

 

關注公眾號:UP技術控   獲取更多資訊