このようなデータベースがあり、弁当のデータを取り出したいと思います。
goodsテーブル
id | name | price |
1 | 唐揚げ弁当 | 480 |
2 | オムライス | 430 |
3 | 塩おにぎり | 100 |
4 | のり弁当 | 450 |
5 | クッキー | 120 |
6 | 幕の内弁当 | 500 |
7 | 鮭おにぎり | 150 |
8 | プリンパフェ | 350 |
9 | 牛丼 | 350 |
10 | シーザーサラダ | 220 |
データベースには、唐揚げ弁当、のり弁当、幕の内弁当がありこの3つを取り出したいとします。
WHERE文でこの3つを指定するのはナンセンスですので、○○弁当を取り出したいときに活躍するのがLIKE演算子です。
本記事では、SQLのLIKE演算子について紹介します。
リンク
LIKEなし
LIKE演算子を使わないで取りだそうとすると、以下のようになります。
SELECT *
FROM goods
WHERE name = "唐揚げ弁当"
OR name = "のり弁当"
OR name = "幕の内弁当";
まだ三種類ならいいのですが、何千種類とかだとお手上げです。
LIKE演算子
SELECT *
FROM goods
WHERE name = "%弁当";
この%は、ワイルドカードを示しています。
ワイルドカードは、どんな文字列にも一致することを意味する記号です。
したがって、これだけで3種類の弁当を指定して、取り出しすことができます。
因みに、”弁当かつ丼”という商品があった場合、除外されます。弁当%と指定しましょう。
まとめ
LIKE演算子は、部分一致するデータを取り出したいときに用います。
ワイルドカードをまとめます。紹介していないものもあります。
_は、任意の1文字を表します。
%は、任意の複数文字を表します。
*は、MicrosoftAccessの場合の任意の複数文字を表します。