1. 程式人生 > 資料庫 >SQL語句中WHERE 1=1的意義

SQL語句中WHERE 1=1的意義

一、動態SQL拼接

為了滿足多條件查詢頁面中不確定的各種因素而採用的一種構造一條正確能執行的動態SQL語句的一種方法

二、查詢表結構

優點:資料庫開銷小。

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(或者where 1=0)來得有用,當我們只需要獲取表的欄位(結構)資訊,而不需要理會實際儲存的記錄時;

          例2)的寫法將是非常可去取的,因為系統僅會讀取結構資訊,而不會將具體的表記錄讀入記憶體中,這無疑節省了系統開銷。