SQLで曖昧検索をするには、LIKE句を使います。
構文
- (LIKE構文)
- LIKE '<検索パターン>'
検索パターンには以下の記号が使用できます。
記号 | 意味 |
---|---|
% | 任意の0文字以上の文字に合致する |
_ | 任意の1文字の文字に合致する |
サンプルコード
以下のような都道府県名マスタを例にします。
CODE | NAME |
---|---|
01 | 北海道 |
02 | 青森 |
03 | 岩手 |
・・・ | |
47 | 沖縄 |
このテーブルから以下のようにあいまい検索をするには以下のように記述します。
「%」は任意の文字(0文字以上)に合致します。
1 2 3 4 5 6 7 8 9 10 11 |
--【前方一致】「岡」で始まる都道府県名を検索する SELECT name FROM m_pref WHERE name LIKE '岡%'; → 岡山 --【後方一致】「岡」で終わる都道府県名を検索する SELECT name FROM m_pref WHERE name LIKE '%岡'; → 静岡、福岡 --【部分一致】「岡」が含まれる都道府県名を検索する SELECT name FROM m_pref WHERE name LIKE '%岡%'; → 静岡、岡山、福岡 |
「_」は任意の1文字に合致します。
1 2 |
SELECT * FROM m_pref WHERE name LIKE '_山'; →富山、岡山 |
最後に「山」が付く都道府県は、和歌山、富山、岡山がありますが、和歌山は任意の1文字に当てはまらないので検索対象とはなりません。
メモ
- 任意の文字を指定したい場合は、「%」を使用します。
- 任意の文字に加え文字数も指定したい場合は、「_」アンダーバーを使用します。