引き続き where 句の書き方を学習していきましょう。ここでは in 演算子による条件の指定方法を取り上げます。

in 演算子によって、カラムに対して複数の値を指定できます。具体的には in 演算子の後の () の中に値を , カンマ区切りで指定します。

where 列名 in(データ, ...)

in 演算子を使うことで or 演算子による条件指定をシンプルに表現できます。次のSQLでは courses テーブルから learning_time 列の値が 3050100 のいずれかに該当するレコードを検索します。

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 演算子を使う方が短いコードで表現できます。