私はいくつかの建物だSQLの C#でクエリを。コードに変数として格納されているいくつかの条件によって異なります。
string Query="SELECT * FROM Table1 WHERE 1=1 ";
if (condition1)
Query += "AND Col1=0 ";
if (condition2)
Query += "AND Col2=1 ";
if (condition3)
Query += "AND Col3=2 ";
動作しますが、1 = 1のテストはエレガントに見えません。使用しなかった場合は、クエリに "where"キーワードが既に追加されているかどうかを毎回覚えて確認する必要があります。
より良い解決策はありますか?
Select 42私たちが受け取っていた何十万ものクエリでした。(面白くないのは、ソースを追跡すること
If I didn't use it, I would have to remember and check every time if "where" keyword was already added or not to the query-それがあなたが使う理由です1 = 1。とにかくデータベースエンジンが最適化するので、見た目は醜いかもしれませんが、問題を解決するための最も簡単な方法です。

42 = 42;-) を使用します