SELECT文で用いられるLIKEや _ % の意味は？


WHEREの後の条件に使われる式として、以下の記載があるのですが、  
具体例として、SELECT文があっての説明が無いので、式の意味、SELECT文に、どのような形で出てきて、どのように解釈したらいいのかわかりません。

> LIKE"_野菜%"  
>  (意味) "野菜"を含む文字列。_は一文字、%は任意文字数のワイルドカード

どういうことでしょうか？




likeは文字列をパターン検索する時に使うもので、`カラム名 like 'パターン文字'`の様に使います。

`_`は任意の一文字、`%`は「0文字以上」の任意の文字列なので'like
'_野菜%'は「野菜」の前に一文字、「野菜」の後は文字列があってもなくてもいいものを検索します。

[code]

    create table test1 (
      comment varchar(255)
    );
    insert into test1 values ('野菜大好き');
    insert into test1 values ('温野菜大好き');
    insert into test1 values ('温野菜');
    insert into test1 values ('無農薬野菜大好き');
    
    select * from test1 where comment like '_野菜%';
    
[/code]

実行結果

[code]

    温野菜大好き
    温野菜
    
[/code]

  * 「野菜大好き」は「野菜」の前に文字がないのでselectされません。
  * 「無農薬野菜大好き」は「野菜」の前が3文字なのでselectされません。

<http://sqlfiddle.com/#!9/184e0/1>

