BETWEEN 演算子は、MySQLなどのSQLデータベースで、特定の範囲内にある値を検索するために使用されます。この演算子は、数値、日付、文字列などのデータ型に対して使用できます。
数値に対して BETWEEN を使う例
例えば、価格(price)が100から300の範囲にある商品を取得する場合:
SELECT *
FROM products
WHERE price BETWEEN 100 AND 300;
このクエリは、価格が100以上300以下の全ての商品を返します。
日付に対して BETWEEN を使う例
日付範囲に対しても BETWEEN を使うことができます。例えば、2024年1月1日から2024年1月31日までに注文されたすべての注文を取得するには:
SELECT *
FROM orders
WHERE order_date BETWEEN '2024-01-01' AND '2024-01-31';
このクエリは、2024年1月1日から2024年1月31日までに行われた全ての注文を返します。
文字列に対して BETWEEN を使う例
BETWEEN は文字列に対しても使用可能です。文字列の範囲検索は、辞書順で行われます。例えば、アルファベット順で「A」から「M」で始まる顧客名を取得するには:
SELECT *
FROM customers
WHERE customer_name BETWEEN 'A' AND 'M';
このクエリは、顧客名が「A」から「M」までの範囲にある顧客を返します。
NOT BETWEEN を使った範囲外の検索
BETWEEN 演算子の反対である NOT BETWEEN 演算子を使うと、指定された範囲外にある値を検索することができます。例えば、価格が100から300の範囲外にある商品を取得するには:
SELECT *
FROM products
WHERE price NOT BETWEEN 100 AND 300;
このクエリは、価格が100未満または300を超える商品を返します。
注意点
BETWEEN は 閉区間 であるため、value1 と value2 も範囲に含まれます。
BETWEEN を使用する際は、value1 が小さい値、value2 が大きい値である必要があります。順序が逆だと結果が返されない可能性があります。