MySQLのワイルドカードの使い方

MySQLのLIKEワイルドカードは、クエリ内で文字列をあいまい検索するために使用できます。2つのワイルドカードを使用します。

  1. パーセント記号(%)は0 個以上の文字を表します。
  2. 下線(_):一文字を表します。

例をいくつか紹介しましょう。

  1. “abc” で始まる文字列を探す:
SELECT * FROM table_name WHERE column_name LIKE 'abc%';
  1. 「xyz」で終わる文字列を検索する:
SELECT * FROM table_name WHERE column_name LIKE '%xyz';
  1. 「def」を含む文字列を探す。
SELECT * FROM table_name WHERE column_name LIKE '%def%';
  1. 「a」で始まり、「z」で終わり、間に2 文字ある文字列を検索する
SELECT * FROM table_name WHERE column_name LIKE 'a__z';

大文字小文字が区別されるのでLIKEワイルドカードを使用する場合、大文字小文字を区別せずに一致させる場合は、LOWER()またはUPPER()関数を使用します。

また、LIKEモードで「%」や「_」を通常の文字として利用する場合は、エスケープ文字(バックスラッシュ)を使用できます。

SELECT * FROM table_name WHERE column_name LIKE 'abc\%xyz' ESCAPE '\';

「abc%xyz」にマッチした文字列

LIKE 演算子は全テーブルスキャンを引き起こすので、大規模テーブルではパフォーマンスに影響が出ることがあります。単純な前方一致のみが必要であれば、インデックスの使用を検討してください。

bannerAds