SELECT ... WHERE (列名) BETWEEN (範囲開始値) AND (範囲終了値)
SQLで範囲を指定してレコードを検索する方法について紹介します。
SQLで範囲を指定した条件にマッチするレコードを検索したい場合があります。
値の範囲を条件にする場合は、BETWEEN演算子を用います。
SELECT ... WHERE (列名) BETWEEN (範囲開始値) AND (範囲終了値)
(列名)の値が(範囲開始値)以上(範囲終了値)のレコードを一致の条件にします。
次のテーブルを用意します。
| 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を実行します。
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 |
以下のSQLと等価になります。
select * from ProductsA where 250 <= price and price <= 880
]}
#(caption="補足2"){{開始値より終了値のほうが大きい値である必要があります。
先の例で、下記のSQLを実行した場合は何も結果を返しません。
select * from ProductsA where price between 880 and 250
]}