MySQL LIKEワイルドカード(%、_)とエスケープの使用例

MySQLのLIKEワイルドカードは、文字列を照合する際に利用できる機能です。SELECT文のWHERE句の中で使用され、条件に合うレコードを曖昧検索するために活用できます。

MySQLにおけるLIKEワイルドカードでは、特殊文字として%と_の2つがあります。

% 記号は、任意の文字(空文字列を含む)を表し、任意の位置に現れることができます。例えば、’a%’ は “a” で始まる任意の文字列、例えば、”apple”、”awesome” などに一致します。

文字一つを表し、どこにでもあることができます。例えば、「a」は「a」という文字で始まり、その後ろに好きな文字が来る文字列(「ab」「ad」など)にマッチします。

LIKE ワイルドカードを使用する例をいくつか示します。

  1. SELECT * FROM customers WHERE customer_name LIKE ‘A%’ ;

このクエリは、customer_name のレコードの中で「A」で始まるものをすべて返します。

  1. 名前が「a」を含む顧客すべてを選択する

このクエリでは先頭に”a”がくるすべてのcustomer_nameレコードが返されます。

  1. 顧客名 LIKE ‘_a%’ の顧客情報をすべて選択

このクエリでは、2番目の文字が”A”である customer_name レコードをすべて返します。

また、MySQLにはLIKEワイルドカードのエスケープ文字を指定するエスケープキーワードが 用意されています。デフォルトのエスケープ文字はバックスラッシュ(\)です。

以下に「エスケープ」を用いたサンプルを示します。

エスケープ文字 ” を使って ‘a%’ で始まる customer_name を customers テーブルから選択します。

このクエリでは、”a”という文字で始まり、その後ろにパーセント記号 (%) が続く customer_name のレコードが返されます。

要約すると、MySQLのLIKEワイルドカードを使用すると、曖昧検索を実行できます。%は任意の文字、_は1文字を表します。escapeキーワードは、LIKEワイルドカードの終了文字を指定できます。

bannerAds