# [SQL]WHERE 1=1 與 WHERE 1=0 效用
###### tags: `SQL` `database`
<br>
## WHERE 1=1
> [time= 2019 11 06 ]
> 原文 & 參考:
> https://dotblogs.com.tw/invercent914/2013/09/16/118728
<br>
增加WHERE 1 = 1不影響輸出結果,但卻可以在SQL語法組合過程中簡化流程,所以偶爾還是可以在程式碼中見到它的身影。
<br>
沒有使用 `WHERE 1=1` :
```csharp=
string sql = "";
bool andFlag = false; //宣告一個旗標決定要不要串上AND字串
sql += "SELECT * ";
sql += "FROM BOOK ";
if(有任何篩選條件){
sql += "WHERE " ;
if(有篩選作者){
sql += "Author = 'author1' ";
andFlag = true;
}
if(有篩選出版社){
if(andFlag)
sql += " AND ";
sql += "Publisher = 'Longman' ";
}
if(有篩選價格){
if(andFlag)
sql += " AND ";
sql += "Price = 100 ";
}
}
//接著進行查詢
```
<br>
使用 `WHERE 1=1` :
```csharp=
string sql = "";
sql += "SELECT * ";
sql += "FROM BOOK ";
sql += "WHERE 1=1 ";
if(有篩選作者)
sql += "AND Author = 'author1' ";
if(有篩選出版社)
sql += "AND Publisher = 'Longman' ";
if(有篩選價格)
sql += "AND Price = 100 ";
//接著進行查詢
```
<br><br><br>
## WHERE 1=0
只傳回SELECT結果的表格結構
```sql=
CREATE TABLE tableName AS
SELECT
*
FROM
BOOK
WHERE
1 = 0
```