【SQL】文字列の部分一致検索を行う述語LIKEの使い方!わかりやすく解説する!

Web技術
スポンサーリンク

SQLで部分一致検索を行うにはどうしたらいいの?

LIKEってどうやって使うの?

わかりやすく教えてほしい!

こういった疑問にこたえます。

この記事を読めば
  • SQLで部分一致検索を行う方法がわかるようになる
  • LIKEの使い方がわかるようになる

エンジニアの僕がわかりやすく解説します!

LIKEの使い方

LIKEは部分一致検索を行う場合に使う述語です。

部分一致には大きく分けて3種類あります。

  • 前方一致
    検索条件となる文字列が検索対象の文字列の最初に位置している
  • 中間一致
    検索条件となる文字列が検索対象のどこかに含まれている
  • 後方一致
    検索条件となる文字列が検索対象の文字列の最後に位置している

具体例を使ってLIKEの使い方を見ていきましょう。

例えば、次のようなsampleテーブルがあったとします。

str1
abccc
cccab
acccb
abcc
ccab
accb
sampleテーブル

このようなテーブルから「ccc」という文字列を含むレコードを選択するとします。

前方一致検索

文字列「ccc」が先頭に出てくるレコードを選択したいとします。

この場合のSQLは次のようになります。

SELECT * FROM sample WHERE str1 LIKE 'ccc%';

実行結果

str1
cccab
実行結果

ここで「%」は「0文字以上の任意の文字列」を意味する記号で、この場合は「cccではじまる全ての文字列」という意味になります。

任意の一文字を表すには「_」(アンダーバー)を使います

中間一致検索

次に、中間一致検索の例として「ccc」を文字列中に含むレコードを選択します。

この場合のSQLは次のようになります。

SELECT * FROM sample WHERE str1 LIKE '%ccc%';

実行結果

str1
abccc
cccab
acccb
実行結果

文字列の最初と最後を「%」で囲むことで「文字列中のどこかにcccがある文字列」という意味になります。

後方一致検索

最後に、文字列が「ccc」で終わるレコードを選択してみましょう。

この場合のSQLは次のようになります。

SELECT * FROM sample WHERE str1 LIKE '%ccc';

実行結果

str1
abccc
実行結果

文字列の部分一致検索を行うLIKEの使い方まとめ

解説の内容をまとめます。

  • LIKEは文字列の部分一致検索を行うときに使う述語
  • 部分一致には前方一致、中間一致、後方一致の3種類がある
  • 0文字列以上の任意の文字列を表すには「%」を使う
  • 任意の1文字を表すには「_」を使う

以上、お疲れ様でした。

コメント

タイトルとURLをコピーしました