【文系向けSQL入門③】LIKEを使ってあいまい検索条件を設定する方法!

とにかくSQLを楽しく、効率的に学ぼうという趣旨の記事です。
今回はLIKEを使ってあいまい検索条件を設定し、抽出を行う方法についてわかりやすく解説します!

目次

あいまい検索とは?

下記を参考にしています。

あいまい検索とは主に「含む」ということです。
大体あってるよねという言葉通りの機能です。

例えば

WHERE 山の名前 = “A山”;

A山の場合だけ反応する式になります。
じゃあ”a山”であったらどうでしょうか?

答えは偽です。
一言一句同じでないと=の場合は成立しません。

このように=で結ばれた条件式では、それ以外の可能性がすべて排除されます。
山の名前は必ず”A山”でないといけないのです。
これはちょっと不便ということで、あいまい検索が使われます。

LIKEの使い方

一言一句同じでないと=の場合は成立しません。

WHERE 山の名前 = “A山”;

そこでLIKEを使うと

WHERE 山の名前 LIKE “A山”;

これで大文字小文字関係なく抽出できます。

%なら部分一致でも行ける

大文字小文字の違いだけだとまだまだきびしめですよね。
もちろんもっとあいまいな方法があります。

WHERE 山の名前 LIKE “%A山%”;

%をつけるとその前は何でもいいという意味になります。
○○A山もOKだし、●A山△もOKというわけです。

%を付けた部分が何でもよいとなります。
%A山であれば前の部分、A山%あれば後ろの部分になります。

核となる文字、今回だと”A山”さえ一致すればOKというわけです。

文字数を指定する

WHERE 山の名前 LIKE “_A山”;

_は%と違って文字数を指定できます。
“_A山”とすると、○A山はいいけど○○A山はダメです。

まとめてみよう

演算子説明
=大文字小文字も含めて完全一致
LIKE大文字小文字を区別しない一致型
LIKEの場合に使える、あいまい文字
_文字数を指定できる、あいまい文字

SQL Lesson 3: Queries with constraints (Pt. 2)の解答

①Find all the Toy Story movies
『トイストーリーを探せ』

SELECT * FROM movies
WHERE Title LIKE "Toy Story%";

②Find all the movies directed by John Lasseter
『John Lasseterさんが監督を務めた映画を探せ』

SELECT * FROM movies
WHERE Director LIKE "John Lasseter";

③Find all the movies (and director) not directed by John Lasseter
『John Lasseterさんが監督を務めてない映画を探せ』

SELECT * FROM movies
WHERE Director != "John Lasseter";

④Find all the WALL-* movies
『タイトルがWALLから始まる映画を探せ』

SELECT * FROM movies
WHERE Title LIKE "WALL%";

おわり

○○という文字を含む場合だけ抽出したい、そういった場面は多いかと思います。
必ずLIKEの使い方は覚えておきましょう。

次回

前回

ビジネスパーソンがいま読むべき本を厳選!

Audible (オーディブル) – 本を聴くAmazonのサービス

オーディオブック聴き放題なら – audiobook.jp

ごり子

読んでくれてありがとう!

コメント

コメントする

目次