指定した値の範囲と比較する(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));

BETWEEN演算子の使い方(1)

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

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');

BETWEEN演算子の使い方(2)

最初に WHERE 句を指定せずにデータを取得します。この場合すべてのデータを取得します。

select * from friends;

BETWEEN演算子の使い方(3)

それでは WHERE 句と BETWEEN 演算子を使って条件を設定します。最初は old カラムの値が 25 以上 30 以下のデータを取得します。

select * from friends where old between 25 and 30;

BETWEEN演算子の使い方(4)

次に文字列型に値について比較してみます。 address カラムの値が 'A' から 'O' までのデータを取得します。

select * from friends where address between 'A' and 'O';

BETWEEN演算子の使い方(5)

このように BETWEEN 演算子では数値だけではなく文字についても範囲内かどうかを調べることができます。

-- --

BETWEEN 演算子を使ってカラムの値を指定した値の範囲と比較する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。