「WHERE 1」の意味(レシピ187)

[レシピ187] 複数の検索キーワードで検索したい(P.470~)の中のP.471の下から9行目の「select * from where 1」というSQL文について補足します。

「WHERE 1」は、MySQLでは、必ず真という条件になり、検索条件がないのと同じ意味になります。

例えば、

SELECT * FROM fruits

というSQLを基本として、いろいろなAND検索条件を追加して絞り込み検索を実行したいとします。

■条件なし

SELECT * FROM fruits

■条件1つ目(りんご)

SELECT * FROM fruits WHERE apple=100

   → 「WHERE apple=100」を付ける

■条件2つ目(オレンジ)

SELECT * FROM fruits WHERE apple=100 AND orange=50

   → 「AND orange=50」を付ける

このように、いくつ目の条件を追加するかによって、WHERE句を加えるかANDを加えるかが違ってきます。

ここで「WHERE 1」を使うとどうなるでしょうか?

SELECT * FROM fruits WHERE 1

として、これに検索条件を加えることにすると、

■条件なし

SELECT * FROM fruits WHERE 1

■条件1つ目(りんご)

SELECT * FROM fruits WHERE 1 AND apple=100

   → 「AND apple=100」を付ける

■条件2つ目(オレンジ)

SELECT * FROM fruits WHERE 1 AND apple=100 AND orange=50

   → 「AND orange=50」を付ける

と、すべての条件で同じようにANDを加えればよいので、SQLを組み立てるプログラムがシンプルになって、条件処理など複雑にならないで済みます。

kenji posted at 2010-5-16 Category: 追加情報

Trackback URL

One Response Leave a comment

  1. […] This post was mentioned on Twitter by 『PHP逆引きレシピ』. 『PHP逆引きレシピ』 said: 『PHP逆引きレシピ』追加情報 「WHERE 1」の意味(レシピ187) http://php-recipe.com/?p=350 #php_recipe […]