LIKE句

SQLのLIKE句について調べました。

 

LIKE句とは

完全一致だけでなく部分一致、前方一致、後方一致など曖昧な条件を指定できる構文です。

 

前提

以下のようなeventsテーブルがあるとします。

id name date description
1 Whistler 1999-11-09 Went hiking.
2 Puffball 1999-11-08 Chased
3 Bowser 1999-11-07 Go to park.
4 Momiji 2003-10-20 Came to the Hayashi family.
5 Buffy 2000-10-30 Climbed to the mountain.
6 jassmine 2005-10-10 Studied.
 

完全一致検索

LIKE '検索文字' で、完全一致する文字列を検索することができます。

SELECT * FROM events WHERE name LIKE 'Whistler'; 

id name date description
1 Whistler 1999-11-09 Went hiking.

 

曖昧検索

LIKE句にワイルドカードを組み合わせることで曖昧検索することができます。

 

ワイルドカード
  • %

「%」は0文字以上の任意の文字列を意味します

  • _

「_」は任意の1文字を意味します

 

 

部分一致

SELECT * FROM events WHERE name LIKE '%e%';

id name date description
1 Whistler 1999-11-09 Went hiking.
3 Bowser 1999-11-07 Go to park.
6 jassmine 2005-10-10 Studied.

nameにeが含まれるものが取得されます。

 

前方一致

SELECT * FROM events WHERE name LIKE 'B%';

id name date description
3 Bowser 1999-11-07 Go to park.
5 Buffy 2000-10-30 Climbed to the mountain.

nameの1文字目がBであるものが取得されます。

 

後方一致

SELECT * FROM events WHERE name LIKE '%er';

id name date description
1 Whistler 1999-11-09 Went hiking.
3 Bowser 1999-11-07 Go to park.

nameの最後の2文字がerであるものが取得されます。

 

文字数指定

 SELECT * FROM events WHERE name LIKE '_owser';

id name date description
3 Bowser 1999-11-07 Go to park.

nameが  "任意の1文字 + owse"であるものが取得されます。

 

 

感想その他

「%」や「_」をワイルドカードとしてではなく文字列として検索したいときに使用するエスケープ文字については後日調べたいと思います。