あれもこれもいっぱいの場合は IN で | データベース初心者の基礎知識ブログ

あれもこれもいっぱいの場合は IN で

論理演算子の OR 演算子を使うと、あれもこれも、ということができますが、たくさんあると大変ですよね。

たとえば、

20100825_03.jpg

この手帳から、名前が、「さとし」、「なおと」、「かつや」の行を取り出そうとすると、OR 演算子を使えば次のようになります。

SELECT * FROM 手帳

WHERE 名前 = 'さとし' OR 名前 = 'なおと' OR 名前 = 'かつや'

長くて大変そうですね。3つぐらいだと大丈夫なのですが、10個ぐらいあるとSQL文が長くなりすぎます。

このように OR 演算子が多くなる場合は、IN 演算子を使います。

SELECT * FROM 手帳

WHERE 名前 IN ('さとし', 'なおと', 'かつや' )

こんな風に短く書けます。

※ IN 演算子の項目の数はデータベースによって、上限が決まっているのであまりに条件が多い場合は注意してください。