# [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 ```