ORの多用から抜け出す
下のPersonテーブルから、Ageが10と35と40の人を抽出したいとき、みなさんどう書きますか?
ID | Name | Age |
---|---|---|
1 | 杉下 ブライアン | 35 |
2 | 元旦 絵馬 | 40 |
3 | 鼻之穴 光男 | 10 |
4 | 楊枝 折子 | 89 |
ORを使って書くと、下記のようになります。
SELECT *
FROM `Person`
WHERE `Age` = 10 OR `Age` = 35 OR `Age` = 40; -- ORが2つもあって気分が優れない… --
ORが2つもあってなんだか気分が優れません。
そこで、IN句を使って書いてみましょう。そうすると、以下のようになります。
SELECT *
FROM `Person`
WHERE `Age` IN (10, 35, 40); -- INを使うと綺麗にまとめられる! --
このように、カラムが同じであれば、IN句を使ってまとめられるみたいです。
とても綺麗になりました(´∇`)
参考