とにかく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のサービス
読んでくれてありがとう!
コメント