指定した値の範囲と比較する(BETWEEN演算子)
WHERE 句で条件を指定するときに BETWEEN 演算子を使用するとカラムの値が指定した範囲に含まれているかを調べることができます。ここでは MySQL で BETWEEN 演算子を使ってカラムの値を指定した値の範囲と比較する方法について解説します。
(Last modified: )
BETWEEN演算子の使い方
WHERE句 で条件を指定する場合に、 BETWEEN 演算子を使うとカラムの値がある範囲に含まれているかどうか調べることができます。使い方は次の通りです。
SELECT col_name1 [, col_name2 ...] FROM table_name WHERE col_name BETWEEN min AND max
カラム( col_name )の値が min よりも大きいか等しく、 max よりも小さいか等しい場合に条件式は TRUE となります。 BETWEEN 演算子については「比較演算子」も参照して下さい)。
使い方は次のとおりです。
[例] old カラムの値が 20 以上 30 以下のデータを取得
SELECT * FROM staff WHERE old between 20 and 30;
なお BETWEEN 演算子は次のように条件式を記述した場合と同じです。
SELECT col_name1 [, col_name2 ...] FROM table_name WHERE col_name >= min and col_name <= max
-- --
それでは実際に試してみます。次のようなテーブルを作成しました。
create table friends (name varchar(10), old int, address varchar(10));
テーブルには次のようなデータを追加しておきます。
insert into friends values ('Yamada', 34, 'Tokyo');
insert into friends values ('Suzuki', 26, 'Nagoya');
insert into friends values ('Mori', 22, 'Osaka');
insert into friends values ('Kudou', 30, 'Sapporo');
insert into friends values ('Sasaki', 28, 'Fukuoka');
最初に WHERE 句を指定せずにデータを取得します。この場合すべてのデータを取得します。
select * from friends;
それでは WHERE 句と BETWEEN 演算子を使って条件を設定します。最初は old カラムの値が 25 以上 30 以下のデータを取得します。
select * from friends where old between 25 and 30;
次に文字列型に値について比較してみます。 address カラムの値が 'A' から 'O' までのデータを取得します。
select * from friends where address between 'A' and 'O';
このように BETWEEN 演算子では数値だけではなく文字についても範囲内かどうかを調べることができます。
-- --
BETWEEN 演算子を使ってカラムの値を指定した値の範囲と比較する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
プログラミングや開発環境構築の解説サイトを運営しています。