WordPressで実行されたSQLクエリを確認した際に、「WHERE 1=1」とあったので調べてみました。
「WHERE 1=1」と記載する主な理由は、プログラムによって動的に生成するSQLをプログラミングしやすくするためでした。
複数のWHERE句の条件がある場合、「WHERE 1=1」の記載がないとWHERE句の条件のプログラミングが煩雑になります。煩雑になる理由は、最初のWHERE句の条件かどうかでプログラミングを変えないといけないためです。
「WHERE 1=1」を記載しておくと、最初のWHERE句かどうか考える必要がないため、プログラミングが簡易となります。
同様に動的に生成するSQLをプログラミングしやすくするために「WHERE 1=0(またはWHERE 1=2)」と「OR」を組み合わせて、活用することもあるらしいです。
「WHERE 1=0(またはWHERE 1=2)」と「OR」を組み合わせることで、特定の条件のみでSQLによる抽出が多なわれるようになります。