MySQLで指定した範囲に値が含まれるか判定する(between や not between の使い方)

指定した範囲に値が含まれているか判定するには「BETWEEN」や「NOT BETWEEN」を使います。

ここでは MySQLコマンド「BETWEEN」や「NOT BETWEEN」の具体的な使い方を解説していきます。

 

「BETWEEN」や「NOT BETWEEN」の基本

「BETWEEN」や「NOT BETWEEN」は、「WHERE」などと組み合わせて条件式で使います。

 

「BETWEEN」のコマンド例

これで指定した範囲に値が含まれているデータを検索できます。

SELECT * FROM テーブル名 WHERE カラム名 BETWEEN 最小の値 AND 最大の値;

 

「NOT BETWEEN」のコマンド例

これで指定した範囲に値が含まれていないデータを検索できます。

SELECT * FROM テーブル名 WHERE カラム名 NOT BETWEEN 最小の値 AND 最大の値;
メモ

SELECT 文の詳しい使い方はこちら

 

指定した範囲に値が含まれているデータを検索する

実際にMySQLサーバーに接続し、動作を確認してみましょう。

 

あらかじめ「test」データベースの「users」テーブルに、以下のようにデータが保存されている例で進めていきます。

name age
佐藤 21
鈴木 25
山田 32

データを保存するコマンド例

CREATE DATABASE test;
USE test;
CREATE TABLE users (name VARCHAR(100), age INT);
INSERT INTO users (name, age) VALUES ('佐藤', 21);
INSERT INTO users (name, age) VALUES ('鈴木', 25);
INSERT INTO users (name, age) VALUES ('山田', 32);
メモ

CREATE DATABASE 文の詳しい使い方はこちら

USE 文の詳しい使い方はこちら

CREATE TABLE 文の詳しい使い方はこちら

INSERT INTO 文の詳しい使い方はこちら

 

それでは「age」カラムの値が20〜25の範囲に含まれるデータを検索してみましょう。コマンドは以下。

SELECT * FROM users WHERE age BETWEEN 20 AND 25;

 

コマンドを実行すると、以下のように結果が表示されました。

メモ

ちなみに、

SELECT * FROM users WHERE age >= 20 AND age <= 25;

でも同様の結果が得られます。

 

指定した範囲に値が含まれていないデータを検索する

今度は「age」カラムの値が20〜25の範囲に含まれていないデータを検索してみましょう。コマンドは以下。

SELECT * FROM users WHERE age NOT BETWEEN 20 AND 25;

 

コマンドを実行すると、以下のように結果が表示されました。

 

まとめ

以上、MySQLコマンド「BETWEEN」や「NOT BETWEEN」の使い方でした!

 

ここまでの内容をまとめておきます。

  • 「BETWEEN」で指定した範囲に値が含まれているか判定することができる。
  • 「NOT BETWEEN」で指定した範囲に値が含まれていないか判定することができる。