[pgsql-jp: 26710] Re: Likeの部分一致で検索

森元 秀明 morimoto @ 34com.net
2002年 7月 17日 (水) 12:56:55 JST


こんにちは、森元です。

> ==ヒット件数取得==
> SELECT Count(*) As cnt  FROM tbl
> WHERE
> ( (
> tbl.keyword1  ILIKE '%windows%'
> OR tbl.keyword2  ILIKE '%windows%'
> OR tbl.keyword3  ILIKE '%windows%'
>
(かなり略)

このソースは実際のものですか?配列とかで処理してるのでしょうか?
PHPなどを使用して配列で検索ってのもできると思うのですが。。。
ついでにヒット件数とデータ取得も1つのセレクトだけで済むような気がするのは私
だけ?

ちなみに、PHPでの記述例

$sql = "select id from tbl
 where ((keyword1 ILIKE '%".$searchword[0]."%')
 or (keyword2 ILIKE '%".$searchword[0]."%')
 or (keyword3 ILIKE '%".$searchword[0]."%') or ・・・))";
for ($i=1;$1 < sizeof($searchword);$i++){
$sql.= "or ((keyword1 ILIKE '%".$searchword[$i]."%')
 or (keyword2 ILIKE '%".$searchword[$i]."%')
 or (keyword3 ILIKE '%".$searchword[$i]."%') or ・・・))";
}
$result = pg_exec($dbHandle, $sql); //SQL文実行

$resultNumRows = pg_numrows($result);//検索件数取得

こんな感じだと思うのですが。。。解決にならないかもしれませんが、気になったん
で




pgsql-jp メーリングリストの案内