【SQL】ORの省略形INの使い方!わかりやすく解説する!

Web技術
スポンサーリンク

ORを何度も書くのがめんどう

INってどうやって使うの?

わかりやすく教えてほしい!

こういった疑問にこたえます。

この記事を読めば
  • INを使ってORを効率よく記述することができるようになる
  • NOT INを使って除外する項目を複数指定することができるようになる

エンジニアの僕がわかりやすく解説します。

INの使い方

INはORの省略形として使うことができる述語です。

例えば、次のようなshohinテーブルがあったとします。

shohin_meikakaku
りんご80
みかん30
ぶどう400
150
いちご400
shohinテーブル

このテーブルから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_meikakaku
りんご80
ぶどう400
いちご400
実行結果

INに記述した対象のレコードを選択することができました。

NOT INの使い方

INでは対象となるデータを引数に指定してきましたが、逆に除外したいデータを指定したい場合はNOT INを使います。

NOT INでは除外したいデータを引数に指定していきます。

例えば、shohinテーブルの「りんご」「ぶどう」「いちご」を除外したレコードを選択したい場合は次のようなSQLになります。

SELECT 
  * 
FROM 
  shohin 
  WHERE
    shohin_mei NOT IN('りんご', 'ぶどう', 'いちご');

実行結果

shohin_meikakaku
みかん30
実行結果

ここで、NULLを選択することはできないという点に注意してください。

INの使い方まとめ

解説の内容をまとめます。

  • INはORの省略形として使える
  • NOT INは除外するデータを指定する
  • INやNOT INはNULLを選択することはできない

以上、お疲れ様でした。

コメント

タイトルとURLをコピーしました