【SQL】LIKE句 使い方を分かりやすく解説!

SQL

そもそもLIKE句とは

SQLであいまい検索を行う際に使用するクエリです。

該当の文字が含まれているかを確認したい対象の列(カラム)に対して、ワイルドカードを用いることで
対象の列(カラム)に〇〇を含む文字列を検索するという処理ができます。

ワイルドカードとは?

ワイルドカードとは、任意の文字列を指定するときに使う「%」や「_」などの特殊文字のことです。
「%」と「_」それぞれの意味は次の通りとなります。
「%」・・・0文字以上の任意の文字列
「_」・・・任意の1文字

LIKE句を使用した検索方法

それでは早速、LIKE句を使用して様々な検索方法を見ていきましょう。

部分一致

部分一致では単純に該当の列(カラム)に〇〇を含むデータがあるかを検索する方法になります。

例) userテーブルのpersonカラムに入っているデータから「田」を含むデータを検索

SELECT person FROM user WHERE person LIKE%%“;                 

上記SQLを実行すると、userテーブルのpersonカラムに入っているデータの「山田」、「田村」、
「太田口」のデータがあった場合、すべて取得対象になります。

前方一致

前方一致では該当の列(カラム)に〇〇を含むデータが前方にあるかを検索する方法になります。
部分一致と同じ例で確認してみましょう。

例) userテーブルのpersonカラムに入っているデータから「田」を含むデータを検索

SELECT person FROM user WHERE person LIKE “田%“;                  

上記SQLを実行すると、userテーブルのpersonカラムに入っているデータの「山田」、「田村」、
「太田口」のデータがあった場合、「田」が文字の最初にある「田村」を取得します。

後方一致

後方一致では該当の列(カラム)に〇〇を含むデータが後方にあるかを検索する方法になります。
同じように例で確認してみましょう。

例) userテーブルのpersonカラムに入っているデータから「田」を含むデータを検索

SELECT person FROM user WHERE person LIKE%田”;                  

上記SQLを実行すると、userテーブルのpersonカラムに入っているデータの「山田」、「田村」、
「太田口」のデータがあった場合、「田」が文字の最後にある「山田」を取得します。

否定(NOT LIKE)

今までは〇〇を含むデータの検索でしたが、NOT LIKEを使用することで〇〇を含まないデータの検索も行うことができます。
下記の例で確認してみましょう。

例) userテーブルのpersonカラムに入っているデータから「田」を含まないデータを検索

SELECT person FROM user WHERE person NOT LIKE%%“;               

上記SQLを実行すると、userテーブルのpersonカラムに入っているデータの「山田」、「田村」、「上村」
「太田口」のデータがあった場合、「田」を含まない「上村」を取得します。

まとめ

今回はLIKE句の基本的な使い方について解説しました。
特定の文字を含む(含まない)検索を行いたい場合に是非、活用してみてください。

注意として、あいまい検索は処理速度があまり早くない為、

大規模な範囲の検索に使用する場合は注意しましょう。

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