SQL likeであいまい検索

今回は「like」を使ってあいまいな語句を検索する方法を学びます。

【1】Accessのファイル「SampleDB.mdb」を起動し、「SQL練習」のSQLビュー画面を開いてください。

access-sql19.gif


【2】まず以下のSQL文を入力し、実行ボタン「!」をクリックします。

SELECT PREF_CD,PREF_NAME
FROM T01Prefecture
WHERE PREF_NAME = '長野';

access-sql43.gif


【3】しかしレコードは表示されません。

access-sql44.gif

原因は=(イコール)を使うには『完全一致』である必要があるからです。「長野県」はあるのですが「長野」は無いということになっているのです。

文字列があいまいな場合は『部分一致』を使います。「=」ではなく「like」です。またあいまいな文字部分には「*」や「?」を置きます。


【4】それでは少し修正した以下のSQL文を入力し、実行ボタン「!」をクリックします。

SELECT PREF_CD,PREF_NAME
FROM T01Prefecture
WHERE PREF_NAME like '長野*';

access-sql45.gif


【5】今度はちゃんと「長野県」が表示されました。

access-sql46.gif


【6】「?」を使っても同じ結果になるので試してみてください。
SELECT PREF_CD,PREF_NAME
FROM T01Prefecture
WHERE PREF_NAME like '長野?';


【解説】
「*」は任意の0文字以上と一致します。'長*'と書くと長野県や長崎県が表示されます。置き換える文字は0文字でもいいですし、10文字でもいいわけです。

「?」は任意の1文字と一致します。 '長?県'と書くと長野県、長崎県が表示されますが、'長?'では何も表示されません。長で始まる2文字の都道府県がないからです。'長??'と書けば表示されます。

「*」や「?」は文字列中にも使えます。

スポンサードリンク

スポンサードリンク






Access SQL初心者入門講座TOPへ