LIKE の使い方

パターンで探す

書き方

列 LIKE 'パターン'
列 NOT LIKE 'パターン'

% は 0 文字以上、_ はちょうど 1 文字。大文字小文字を区別します(PostgreSQL の ILIKE は区別しない)。

よく使うオプション

オプション意味
%0 文字以上の、どんな文字でも
_ちょうど 1 文字の、どんな文字でも
NOT LIKEパターンに合わない行
ILIKE大文字と小文字を区別しない(PostgreSQL)
ESCAPE '文字'% や _ そのものを探すときの目印を決める

例

SELECT name FROM customers WHERE name LIKE '山%';

山で始まる名前の客を出します(山田・山本など)。

SELECT email FROM employees WHERE email LIKE '%@example.com';

メールアドレスが @example.com で終わる社員を出します。

SELECT name FROM customers WHERE name LIKE '__';

名前がちょうど 2 文字の客を出します。_ 1 つが 1 文字です。

SELECT email FROM employees WHERE email ILIKE '%SATO%';

sato・Sato・SATO のどれを含んでも見つけます。ILIKE は PostgreSQL だけの書き方です。

よくある間違い・注意

  • '%東京%' のように先頭が % だと、インデックスが使えず遅くなりがちです。
  • LIKE は大文字と小文字を区別します(MySQL は設定によっては区別しません)。区別したくないときは ILIKE か LOWER(列) LIKE を使います。
  • % や _ そのものを探すときは、LIKE '10\%' のように \ を前に付けます。

実際に打って練習する

SQL コースの Lv9「あいまいに探す LIKE」で覚えます。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。

Lv1〜3 は、登録不要・無料で遊べます(それより先はブロンズ以上のプランで遊べます)。

SQL 構文一覧(使い方と例)へ戻る