tawara's blog

雑記。個人の見解です。

IN述語を使うと OR をたくさん並べなくてよい

SQLのお話。あるカラムの複数の値をSELECTしたい。

愚直に書くとこうなる。

mysql> SELECT id, title, author FROM books WHERE id = 1 or id = 2;
+----+-----------------------------------------------+--------------------------------+
| id | title                                         | author                         |
+----+-----------------------------------------------+--------------------------------+
|  1 | みみずくは黄昏に飛びたつ                      | 川上 未映子/村上 春樹          |
|  2 | 村上春樹翻訳(ほとんど)全仕事                | 村上春樹                       |
+----+-----------------------------------------------+--------------------------------+
2 rows in set (0.00 sec)

指定する値が増える数だけ OR が増えていく。めんどう。そういうときに IN述語が使える。

mysql> SELECT id, title, author FROM books WHERE id in (1, 2);
+----+-----------------------------------------------+--------------------------------+
| id | title                                         | author                         |
+----+-----------------------------------------------+--------------------------------+
|  1 | みみずくは黄昏に飛びたつ                      | 川上 未映子/村上 春樹          |
|  2 | 村上春樹翻訳(ほとんど)全仕事                | 村上春樹                       |
+----+-----------------------------------------------+--------------------------------+
2 rows in set (0.00 sec)

便利だ。

参考 書きのpp210

(了)