範囲内の値に一致するデータに絞り込もう

ここでは、列 A の値が 1 から 10 までのレコードといった、特定の列の値が指定した範囲内の値に一致する行のみに絞り込む方法を学びます。

ランクが3から6までとか、学年が1から3年までとか、連続した値の範囲の指定をしたい場合に有効です。

書き方

SELECT * FROM <テーブル名> WHERE 列名 BETWEEN <開始値> AND <終了値>;

書き方の説明

範囲指定を行う際には、列名 BETWEEN <開始値> AND <終了値> と指定します。

例えば、列Aが100から1000の間のレコードに指定したい場合は、列A BETWEEN 100 AND 1000 となります。

商品情報が入っている products テーブルについて、価格(price)が 100 から 3000 のデータに絞り込みたい

SELECT * FROM products WHERE price BETWEEN 100 AND 3000;

ユーザー情報が入っている users テーブルについて、生年月日(birthday)が1950年1月1日から、1980年5月5日の間のデータに絞り込みたい

SELECT * FROM users WHERE birthday BETWEEN "1950-01-01" AND "1980-05-05";

練習

試しに、SELECT 文で products テーブルで、範囲指定したレコードだけを取得してみましょう!

次の SQL 文を実行すると、products テーブルより、価格(price)が 2000 から 4000 までのレコードだけ表示されます。

問題

sales というテーブルがあります。この sales というテーブルのうち、user_id(数値型)が400から700までの間の値のデータを取得する SQL 文を書いてみましょう。

答え合わせ

正解を見る
正解:SELECT * FROM sales WHERE user_id BETWEEN 400 AND 700;
解説:user_idが400から700までのデータを取得したいので、WHERE user_id BETWEEN 400 AND 700 と指定します。