

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

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

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


CC BY-SA 3.0
2016-11-08T17:18:16.713
30252
2016-11-10T05:51:10.827
2016-11-10T05:51:10.827
8000
18933
question
sql
SELECT文で用いられるLIKEや _ % の意味は？


_ および % はワイルドカードです。

_ は任意の一文字を表すので、`LIKE "_野菜"` は「お野菜」「生野菜」などが、  
% は0文字以上の任意の文字列を表し、`LIKE "野菜%"` は「野菜」「野菜ジュース」などが該当します。

<https://technet.microsoft.com/ja-jp/library/ms187489(v=sql.105).aspx>


CC BY-SA 3.0
2016-11-09T01:04:17.587
30257
2016-11-09T01:14:17.987
2016-11-09T01:14:17.987
19437
17324
30252
answer


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>


CC BY-SA 3.0
2016-11-09T01:12:35.677
30258
2016-11-09T01:12:35.677
18862
30252
answer


使用例があればいいのかな？

[code]

    SELECT * FROM tblName WHERE fieldName LIKE '_野菜%'
    
    SELECT 【表示したいフィールド】 
    FROM 【テーブル名】 
    WHERE 【検索対象のフィールド】LIKE '【検索パターン】'
    
[/code]

【検索パターン】にはワイルドカードが使用できます。  
ワイルドカードの説明は他の方がされているので、詳しくはそちらを参照してください。


CC BY-SA 3.0
2016-11-09T01:18:21.213
30260
2016-11-09T01:18:21.213
30252
answer