SQLで範囲を指定してレコードを検索する方法について紹介します。
概要
SQLで範囲を指定した条件にマッチするレコードを検索したい場合があります。
値の範囲を条件にする場合は、BETWEEN演算子を用います。
書式
SELECT ... WHERE (列名) BETWEEN (範囲開始値) AND (範囲終了値)
(列名)
の値が
(範囲開始値)
以上
(範囲終了値)
のレコードを一致の条件にします。
メモ
値の範囲ではなく、特定の値(離散値)で検索したい場合は、IN演算子を利用します。IN演算子の使用方法については
こちらの記事を参照してください。
例
次のテーブルを用意します。
products
id | name | price | category |
1 | Penguin | 250 | Bird |
2 | Bear | 1050 | Mammal |
3 | Duck | 150 | Bird |
4 | Camel | 550 | Mammal |
5 | Owl | 185 | Bird |
6 | Whale | 880 | Mammal |
SQL
以下のSQLを実行します。
select * from ProductsA where price between 250 and 880
解説
where price between 250 and 880
の条件によりpriceが250以上880以下のレコードを求めます。
結果
id | name | price | category |
1 | Penguin | 250 | Bird |
4 | Camel | 550 | Mammal |
6 | Whale | 880 | Mammal |
#(caption="補足1"){{
以下のSQLと等価になります。
select * from ProductsA where 250 <= price and price <= 880
]}
#(caption="補足2"){{
開始値より終了値のほうが大きい値である必要があります。
先の例で、下記のSQLを実行した場合は何も結果を返しません。
select * from ProductsA where price between 880 and 250
]}
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
最終更新日: 2023-03-28
作成日: 2014-08-12