引き続き where
句の書き方を学習していきましょう。ここでは in
演算子による条件の指定方法を取り上げます。
in
演算子によって、カラムに対して複数の値を指定できます。具体的には in
演算子の後の ()
の中に値を ,
カンマ区切りで指定します。
where 列名 in(データ, ...)
in
演算子を使うことで or
演算子による条件指定をシンプルに表現できます。次のSQLでは courses
テーブルから learning_time
列の値が 30
、 50
、 100
のいずれかに該当するレコードを検索します。
MariaDB [eldb]> select * from courses
-> where learning_time in (30, 50, 100);
+----+-----------------+---------------+-------------+
| id | title | learning_time | category_id |
+----+-----------------+---------------+-------------+
| 1 | PHP Basic | 30 | 1 |
| 2 | PHP Database | 50 | 1 |
| 4 | Web Design | 50 | 2 |
| 5 | Japan's History | 100 | NULL |
+----+-----------------+---------------+-------------+
4 rows in set (0.00 sec)
MariaDB [eldb]>
(参考) or
演算子による条件指定の場合
さきほどと同様のSQLを or
演算子で記述すると次のようになります。
MariaDB [eldb]> select * from courses
-> where learning_time = 30 or learning_time = 50
-> or learning_time = 100;
+----+-----------------+---------------+-------------+
| id | title | learning_time | category_id |
+----+-----------------+---------------+-------------+
| 1 | PHP Basic | 30 | 1 |
| 2 | PHP Database | 50 | 1 |
| 4 | Web Design | 50 | 2 |
| 5 | Japan's History | 100 | NULL |
+----+-----------------+---------------+-------------+
4 rows in set (0.00 sec)
MariaDB [eldb]>
このようなケースでは in
演算子を使う方が短いコードで表現できます。