はじめてのSQL

LIKE (ライク)演算子とは

指定したテーブルから○○を含む文字だけ検索したい時はどうすれば良いの?

あんず
あんず
そんな時はLIKE 演算子を使います

文字列に指定の文字が含まれているか探す事をパターンマッチングと言います
SQLではLIKE 演算子を使う事で部分一致の検索が行えます

LIKE 演算子でパターンマッチング

LIKEを使うと文字の部分一致を検索する事ができます

パターン文字 意味
% 任意の0文字以上の文字列
_(アンダースコア) 任意の1文字
では従業員テーブルを使って説明していきます
従業員テーブル
社員コード社員名性別
01山田
02鈴木 花子
03横井 次郎
04田中 美津子

田の後に任意の1文字以上の文字列が付いても良い
(田ではじまる文字列という意味)

SELECT  *   
  FROM   従業員
WHERE   社員名 LIKE ‘田%‘  

検索結果
社員コード社員名性別
04田中 美津子

田の前に任意の1文字以上の文字列が付いても良い
(田で終わる文字列という意味)

SELECT  *   
  FROM   従業員
WHERE   社員名 LIKE%田’  

検索結果
社員コード社員名性別
01山田

田の前後に任意の1文字以上の文字列が付いても良い
(田を含む文字列という意味)

SELECT  *   
  FROM   従業員
WHERE   社員名 LIKE%%‘  

検索結果
社員コード社員名性別
01山田
04田中 美津子

田の前に任意の1文字が付く

SELECT  *   
  FROM   従業員
WHERE   社員名 LIKE_田’  

検索結果
社員コード社員名性別
01山田

%を含む文字列を探す場合

例えば『100%』という文字列を検索する場合LIKEで探そうとしても『%』は特殊な意味の文字として扱われるのでそのままでは検索する事が出来ません

そのような場合はESCAPEを使ってただの文字として
扱われるようにしなければいけません

SELECT  *   
  FROM   テーブル名指定
WHERE   列名を指定 LIKE%100$%’ ESCAPE ‘$’

文字列と認識してもらいたい文字の前に$を付け続けてESCAPE ‘$’と記入する事でその後ろの『%』がただの文字列として認識されます