expr LIKE pat [ESCAPE 'escape_char']
SQL の簡単な正規の比較式を使用してのパターン マッチング。1 ( TRUE ) または 0 ( FALSE ) を戻します。expr もしくは pat のどちらかが NULL である場合、結果は NULL になります。
パターンはリテラル ストリングである必要があります。例えば、文字列式、またはテーブル カラムとして指定するのでもかまいません。
SQL 標準に当たり、LIKE は文字ごとにマッチングを行うので、= 比較演算子とは異なる結果を生成することができます。
mysql>SELECT 'ä' LIKE 'ae' COLLATE latin1_german2_ci;+-----------------------------------------+ | 'ä' LIKE 'ae' COLLATE latin1_german2_ci | +-----------------------------------------+ | 0 | +-----------------------------------------+ mysql>SELECT 'ä' = 'ae' COLLATE latin1_german2_ci;+--------------------------------------+ | 'ä' = 'ae' COLLATE latin1_german2_ci | +--------------------------------------+ | 1 | +--------------------------------------+
LIKE では、次のふたつのワイルドカード文字をパターンで使用することができます :
| 文字 | 説明 | 
% | 
        0 からあらゆる数の文字でもマッチする。 | 
_ | 
        ひとつの文字を明確にマッチする。 | 
mysql>SELECT 'David!' LIKE 'David_';-> 1 mysql>SELECT 'David!' LIKE '%D%v%';-> 1
ワイルドカード文字のリテラル インスタンスをテストするには、エスケープ文字で優先させます。ESCAPE 文字を指定しない場合は、‘\’ が仮定されます。
| ストリング | 説明 | 
\% | 
        ‘%’ 文字をひとつマッチする。 | 
      
\_ | 
        ‘_’ 文字をひとつマッチする。 | 
      
mysql>SELECT 'David!' LIKE 'David\_';-> 0 mysql>SELECT 'David_' LIKE 'David\_';-> 1
異なるエスケープ文字を指定するには、ESCAPE 句を使用します :
mysql> SELECT 'David_' LIKE 'David|_' ESCAPE '|';
        -> 1
  エスケープ シーケンスは空か、1 文字長である必要があります。MySQL 5.1.2 からは、NO_BACKSLASH_ESCAPES SQL モードを有効にすると、シーケンスを空にすることはできません。
次のふたつのステートメントは、オペランドのひとつがバイナリ ストリングでない限り、文字列比較は大文字小文字の区別をしないことを示しています :
mysql>SELECT 'abc' LIKE 'ABC';-> 1 mysql>SELECT 'abc' LIKE BINARY 'ABC';-> 0
MySQL では、LIKE を数値式で使用することができます。( 標準の SQL LIKE のエクステンションです ) 。
mysql> SELECT 10 LIKE '1%';
        -> 1
  注記 :MySQL は C エスケープ構文をストリングで使用するため ( 例えば、‘\n’ で改行文字を表現 ) 、LIKE ストリングで使用する ‘\’ はすべて二重にする必要があります。例えば、‘\n’ を検索するには、‘\\n’ と指定します。‘\’ の検索には、‘\\\\’ と指定します。これは、バックスラッシュがパーサによってストリップされ、そしてパターンのマッチが実行された時にもストリップされるため、ひとつのバックスラッシュを残してマッチさせるためです。(
  例外 :パターン ストリングの最後では、バックスラッシュは ‘\\’ と指定できます。ストリングの末尾では、エスケープの後に連なるものがないため、バックスラッシュはそのもので独立することができます ) 。