PHP+SQLite:あいまい検索

(1/1)
SQL の SELECT 文で、WHERE 句の中に LIKE 句を書くことで、あいまい条件検索を行うプログラムを作ってみることにする。

サンプル・プログラム

このプログラムは、「武田」という名前が含まれる者を抽出、表示するものである。

解説:抽出条件指定とWHERE句

前回、WHERE 句の後に数値の大小比較式や論理式を記すプログラムについて紹介した。今回は LIKEという演算子を紹介する。
LIKE 句は SQL特有の演算子で、%(パーセント)記号と合わせて用いることで文字列のあいまい検索を可能とする。

SELECT * FROM chronologic WHERE name like '%武田%';


これは、name カラムに「武田」という文字列を含むレコードがマッチする SQL 文である。
%(パーセント)記号は、あらゆる文字列にマッチする。この場合は、「武田」の前後に何らかの文字列があるレコードを抽出するという意味になる(部分一致)。
武田氏という苗字を検索したいなら、'武田%' と書いた方が良いだろう。この場合は、「武田」ではじまる任意の文字列という意味になる(前方一致)。
また、「武田」が苗字ではなく名前であるならば、'%武田' という書き方にする(後方一致)。

0025: //実行するSQL
0026: define('SQL', "SELECT * FROM chronologic WHERE 1;");

参考サイト

(この項おわり)
header