>> MySQL入門トップに戻る

MySQL IN句(リストで比較)

MySQLにおけるIN句の説明です。

WHERE句で例えばあるカラムに対して複数条件を指定したい場合、
何個もAND演算子で繋げていくとコードが長くなって見辛くなります。

そこでIN句を使ってリスト形式に比較することができます。
SELECT カラム名 FROM テーブル名 WHERE カラム名 IN(値,値,・・・);
testカラムが1、3、5、10のいずれかの値のレコードを取得するSQL文は以下のように書きます。
SELECT * FROM temp WHERE test IN(1,3,5,10);
大分コードがすっきりしましたね。

また、IN句の中には直接SELECT文を指定することもできます。
SELECT * FROM temp WHERE test IN(select id from list);
上記のようなSQL文を実行すると、testカラムがIN句の中のSELECT文で
取得される値のいずれかであれば真となる、という意味になります。
この場合だとlistテーブルに登録されてるid全てがその比較の対象ということになりますね。

このように非常にスマートなコードでまとめられるようになります。
>> 【MySQL LIKE句(文字列比較)】に進む
>> MySQL入門トップに戻る