今日はWHEREの中で使える関数について書いていきます!
これらを使いこなせると欲しいデータを抽出する時にかなり速くなりますので便利です
もちろん複数組み合わせもできます!!
では下記のようなデータからそれぞれ使ってみます
データ(products )
ID | 商品名 | カテゴリ | 価格 | 割引価格 |
---|---|---|---|---|
1 | りんご | 食品 | 120 | NULL |
2 | バナナ | 食品 | 100 | NULL |
3 | シャツ | 衣類 | 1500 | 1000 |
4 | ズボン | 衣類 | 3000 | NULL |
5 | 洗濯機 | 家電 | 25000 | 20000 |
6 | テレビ | 家電 | 40000 | 35000 |
7 | 電子レンジ | 家電 | 15000 | NULL |
データ(orders)
注文ID | 商品ID | 数量 |
---|---|---|
101 | 1 | 5 |
102 | 3 | 2 |
103 | 5 | 1 |
①BETWEEN
SELECT *
FROM products
WHERE 価格 BETWEEN 1000 AND 20000;
【実行結果】
ID | 商品名 | カテゴリ | 価格 | 割引価格 |
---|---|---|---|---|
3 | シャツ | 衣類 | 1500 | 1000 |
4 | ズボン | 衣類 | 3000 | NULL |
7 | 電子レンジ | 家電 | 15000 | NULL |
【解説】
カラム BETWEEN A and B:そのカラムのA〜Bの間を抽出 ※AとBも含みます
よく日時を拾う時に使います
例:BETWEEN 2025-08-01 09:00:00 and 2025-08-01 21:00:00
これで9時21時を含むその時間のデータを抽出できます
②IN
SELECT *
FROM products
WHERE カテゴリ IN ('食品', '家電');
【実行結果】
ID | 商品名 | カテゴリ | 価格 | 割引価格 |
---|---|---|---|---|
1 | りんご | 食品 | 120 | NULL |
2 | バナナ | 食品 | 100 | NULL |
5 | 洗濯機 | 家電 | 25000 | 20000 |
6 | テレビ | 家電 | 40000 | 35000 |
7 | 電子レンジ | 家電 | 15000 | NULL |
【解説】
カラム in (A, B):そのカラムがAまたはBのもののみを抽出
非常に単純で分かりやすいです!数を増やせばその分拾うものを増やせます
ただAとBの間に「,」が入れるのをお忘れなく
最後にはつきません!!
③LIKE
SELECT *
FROM products
WHERE 商品名 LIKE '%ン%';
【実行結果】
ID | 商品名 | カテゴリ | 価格 | 割引価格 |
---|---|---|---|---|
4 | ズボン | 衣類 | 3000 | NULL |
7 | 電子レンジ | 家電 | 15000 | NULL |
【解説】
カラム LIKE ‘ABCDE’:そのカラムでABCDEのものを抽出
これが基本形ですが一番便利なのは上のコードのようなワイルドカードです
A%:Aから始まるもの 始まりさえすれば抽出できます
%E:Eで終わるもの これもEで終わっていれば抽出できます
A%E:Aから始まりEで終わるもの
%C%:中にCが入っているもの
最初または最後が何であってもCが含まれてさえいれば抽出できます
今回の%ン%がまさにそうですね!
%と別に-もあります
使い方は、
AB[A-B]%:ABから始まり3文字目がAからBの間になるもの
この条件だとさっきのABCDEは当てはまらないですね
[A-E][A-E][A-E][A-E][A-E]だったら当てはまります(笑)
IS NULL
SELECT *
FROM products
WHERE 割引価格 IS NULL;
【実行結果】
ID | 商品名 | カテゴリ | 価格 | 割引価格 |
---|---|---|---|---|
1 | りんご | 食品 | 120 | NULL |
2 | バナナ | 食品 | 100 | NULL |
4 | ズボン | 衣類 | 3000 | NULL |
7 | 電子レンジ | 家電 | 15000 | NULL |
【解説】
最後のIS NULLはとても簡単でNULLなら抽出できます!
【まとめ】
BETWEEN:範囲で絞る
IN:指定した複数の値から選択
LIKE:部分一致検索
IS NULL:NULL値を検索
この4種を使いこなせると抽出の幅が大きく広がります!
使いこなしていきましょう
コメント