サンプル・プログラムの実行例
サンプル・プログラム
like1.php | サンプル・プログラム本体。 |
このプログラムは、「武田」という名前が含まれる者を抽出、表示するものである。
解説:抽出条件指定とWHERE句
51: //実行するSQL
52: define('SQL', "SELECT * FROM chronologic WHERE 1;");
前回、WHERE句の後に数値の大小比較式や論理式を記すプログラムについて紹介した。今回は LIKEという演算子を紹介する。
LIKE句はSQL特有の演算子で、%(パーセント)記号と合わせて用いることで文字列のあいまい検索を可能とする。
%(パーセント)記号は、あらゆる文字列にマッチする。この場合は、「武田」の前後に何らかの文字列があるレコードを抽出するという意味になる(部分一致)。
武田氏という苗字を検索したいなら、'武田%' と書いた方が良いだろう。この場合は、「武田」ではじまる任意の文字列という意味になる(前方一致)。
また、「武田」が苗字ではなく名前であるならば、'%武田' という書き方にする(後方一致)。
LIKE句はSQL特有の演算子で、%(パーセント)記号と合わせて用いることで文字列のあいまい検索を可能とする。
SELECT * FROM chronologic WHERE name like '%武田%';これは、nameカラムに「武田」という文字列を含むレコードがマッチするSQL文である。
%(パーセント)記号は、あらゆる文字列にマッチする。この場合は、「武田」の前後に何らかの文字列があるレコードを抽出するという意味になる(部分一致)。
武田氏という苗字を検索したいなら、'武田%' と書いた方が良いだろう。この場合は、「武田」ではじまる任意の文字列という意味になる(前方一致)。
また、「武田」が苗字ではなく名前であるならば、'%武田' という書き方にする(後方一致)。
参考サイト
- PHP Data Objects:公式
- PHP+SQLite:参考書籍の紹介:ぱふぅ家のホームページ
- あの不定記 sqlite の LIKE 演算でインデックスを使う方法
- SQLiteManagerでUTF-8でデータを保存したい:3流プログラマのメモ書き
(この項おわり)
(2022年11月19日)PHP8対応,他.