ORを何度も書くのがめんどう
INってどうやって使うの?
わかりやすく教えてほしい!
こういった疑問にこたえます。
エンジニアの僕がわかりやすく解説します。
INの使い方
INはORの省略形として使うことができる述語です。
例えば、次のようなshohinテーブルがあったとします。
shohin_mei | kakaku |
りんご | 80 |
みかん | 30 |
ぶどう | 400 |
150 | |
いちご | 400 |
このテーブルからshohin_meiが「りんご」「ぶどう」「いちご」のレコードを選択したい場合、ORであれば次のようなSQLになります。
SELECT
*
FROM shohin
WHERE shohin_mei = 'りんご'
OR shohin_mei = 'ぶどう'
OR shohin_mei = 'いちご';
このように記述しても対象のデータが取り出せますが、対象のデータが増えていくと読みにくいSQLとなってしまいます。
そこでINを使って記述することで読みやすくすっきりとしたSQLを書くことができます。
先ほどのSQLをINを使って記述すると次のようなSQLになります。
SELECT
*
FROM
shohin
WHERE
shohin_mei IN('りんご', 'ぶどう', 'いちご');
実行結果
shohin_mei | kakaku |
りんご | 80 |
ぶどう | 400 |
いちご | 400 |
INに記述した対象のレコードを選択することができました。
NOT INの使い方
INでは対象となるデータを引数に指定してきましたが、逆に除外したいデータを指定したい場合はNOT INを使います。
NOT INでは除外したいデータを引数に指定していきます。
例えば、shohinテーブルの「りんご」「ぶどう」「いちご」を除外したレコードを選択したい場合は次のようなSQLになります。
SELECT
*
FROM
shohin
WHERE
shohin_mei NOT IN('りんご', 'ぶどう', 'いちご');
実行結果
shohin_mei | kakaku |
みかん | 30 |
INの使い方まとめ
解説の内容をまとめます。
- INはORの省略形として使える
- NOT INは除外するデータを指定する
- INやNOT INはNULLを選択することはできない
以上、お疲れ様でした。
コメント