![見出し画像](https://assets.st-note.com/production/uploads/images/110836660/rectangle_large_type_2_486d23a82d4a8eba65fa776a6c08fba1.png?width=1200)
Photo by
noriyukikawanaka
SQLの「WHERE句」と条件式 - ほしい情報だけ取りだす
WHERE句は、データベースから特定の条件を満たすレコードのみを選択するために利用されます。特定の条件に基づいてデータをフィルタリングしたり、検索したりすることができます。
WHERE句でよく使う記述を6つ紹介します。
1. WHERE句+比較演算子 (カラムの値を比較)
比較演算子とは、以下のようなものです。
= 等しい
<>または!= 等しくない
< より小さい
> より大きい
<= 以下
>= 以上
クエリでは以下のように記述します。
-- 列と値が同じレコードだけ抽出
SELECT * FROM テーブル名 WHERE 列 = 値;
-- 列が値より大きいレコードだけ抽出
SELECT * FROM テーブル名 WHERE 列 > 値;
2.WHERE句+論理演算子(条件追加)
複数の条件を組み合わせる場合には、論理演算子(AND、OR、NOT)を使用して条件を結合します。
-- 条件1かつ条件2
SELECT * FROM テーブル名 WHERE 条件1 AND 条件2;
-- 条件1または条件2
SELECT * FROM テーブル名 WHERE 条件1 OR 条件2;
-- 条件と一致するものは除外
SELECT * FROM テーブル名 WHERE NOT 条件;
3.WHERE句+LIKE演算子(文字列検索)
LIKE演算子とワイルドカードによって、文字列のパターンマッチングを行い、特定のパターンに一致するデータをフィルタリングできます。
-- ワイルドカード(%) は0文字以上の任意の文字列を表す
SELECT * FROM テーブル名 WHERE 列 LIKE 'abc%';
-- アンダーバー(_) は1文字の任意の文字を表す
SELECT * FROM テーブル名 WHERE 列 LIKE '_bc';
4.WHERE句+IN演算子(いずれかに一致)
指定した値のいずれかに一致するデータをフィルタリングできます。同じ結果を得るためにOR演算子を使用することもできますが、IN演算子はよりシンプルに書けます。
-- 値1または2または3に一致するものを抽出
SELECT * FROM テーブル名 WHERE 列 IN (値1, 値2, 値3);
5.WHERE句+NULL(NULL値の扱い)
NULL値を扱う場合には、IS NULL演算子またはIS NOT NULL演算子を使用して、NULL値をフィルタリングできます。
-- 列がnullの場合のみ抽出
SELECT * FROM テーブル名 WHERE 列 IS NULL;
-- 列がnullではない場合のみ抽出
SELECT * FROM テーブル名 WHERE 列 IS NOT NULL;
6.WHERE句+BETWEEN演算子(範囲指定)
指定した範囲内にある値を持つ行を選択できます。値が等しい場合も含まれます。数値や日付など、順序があるデータ型に対して使用します。
-- 値1から値2の間に該当する値を持つレコードを抽出
SELECT * FROM テーブル名 WHERE 列 BETWEEN 値1 AND 値2;
上記6つは、WHERE句の表現として紹介しましたが、HAVING句(GROUP BY句の集計結果に対して条件を指定する)で使用することもできます。
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?