SQL基礎 LIKE 演算子

このようなデータベースがあり、弁当のデータを取り出したいと思います。

goodsテーブル

idnameprice
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の場合の任意の複数文字を表します。