指定した値の範囲と比較する(BETWEEN..AND演算子)

WHERE 句を使って条件を指定するときに、 BETWEEN...AND 演算子を使用するとカラムの値が指定した範囲に含まれているかを調べることができます。ここでは MariaDB で BETWEEN...AND 演算子を使ってカラムの値を指定した値の範囲と比較する方法について解説します。

(Last modified: )

指定した値の範囲と比較する

WHERE句 で条件を指定する場合に、 BETWEEN..AND 演算子を使うとカラムの値がある範囲に含まれているかどうか調べることができます。使い方は次の通りです。

SELECT col_name [, col_name ...]
  FROM table_references
  WHERE col_name BETWEEN min AND max

カラム( col_name )の値が min よりも大きいか等しく、 max よりも小さいか等しい場合に条件式は TRUE となります。

使い方は次のとおりです。

[例] old カラムの値が 20 以上 30 以下のデータを取得
SELECT * FROM staff WHERE old between 20 and 30;

なお BETWEEN 演算子は次のように条件式を記述した場合と同じです。

SELECT col_name [, col_name ...]
  FROM table_references
  WHERE col_name >= min and col_name <= max

それでは実際に試してみます。次のようなテーブルを作成し、データを 4 つ追加しました。

create table friends (name varchar(10), old int, address varchar(10));

insert into friends values('Oota', 30, 'Tokyo'),('Ueda', 24, 'Fukuoka'),('Nakano', 18, 'Nagoya'),('Suzuki',26,'Kyoto');

指定した値の範囲と比較する(1)

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

select * from friends;

指定した値の範囲と比較する(2)

次に old カラムの値が 21 以上 29 以下のデータだけを取得してみます。次のように実行してください。

select * from friends where old between 21 and 29;

指定した値の範囲と比較する(3)

WHERE 句に記述した条件が真となるデータのみ取得しました。

これは次のように実行した場合と同じ結果となります。

select * from friends where old>=21 and old<=29;

指定した値の範囲と比較する(4)

このように BETWEEN..AND 演算子を使用するとカラムの値が指定した範囲内にあるかどうかの条件式を記述するときに簡潔に記述が可能です。

-- --

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

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

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