指定した値の範囲と比較

広告

WHERE句で条件を指定する場合に、カラムの値がある範囲に含まれているかどうか調べるのに便利なのがBETWEEN演算子です。書式は次の通りです。

WHERE col_name BETWEEN min AND max
WHERE col_name NOT BETWEEN min AND max

カラムの値がminよりも大きいか等しく、maxよりも小さいか等しい場合に「col_name BETWEEN min AND max」が1(=TRUE)を返します。それ以外は0を返します。(「比較演算子」も参照して下さい)。NOT BETWEEN ANDの場合は、BETWEEN ANDの結果を反転した結果(1なら0、0なら1)となります。

例えば次のように記述します。

SELECT * FROM seiseki WHERE tokuten BETWEEN 30 AND 60;

上記では「tokuten」カラムの値が30以上60以下のデータを取得します。

サンプル

実際に試してみます。まず次のようなテーブルを作成します。

mysql> create table products(name varchar(20), price int, releasedate date);

p5-1

テーブルには次のようなデータを追加してあります。

p5-2

では「price」カラムの値が10,000以上から30,000以下までのデータを取得します。

mysql> select * from products where price between 10000 and 30000;

p5-3

反対に「price」カラムの値が10,000以上から30,000以下ではないデータを取得します。

mysql> select * from products where price not between 10000 and 30000;

p5-4

今度は「releasedate」カラムの値が'2009-01-01'から'2009-12-31'までのデータを取得します。

mysql> select * from products where releasedate 
    -> between '2009-01-01' and '2009-12-31';

p5-5

( Written by Tatsuo Ikura )