mysql:5051
From: とみたまさひろ <とみたまさひろ <tommy@xxxxxxxxxx>>
Date: Tue, 29 Jan 2002 10:27:28 +0900
Subject: [mysql 05051] Re: 検索エンジンのワード検索
とみたです。 On Tue, 29 Jan 2002 07:29:14 +0900 sin <panocon@xxxxxxxxxx> wrote: > シンです。 > たてやんさん、草薙さん有り難う御座います。 > 質問の仕方が悪くて申し訳ありません。 > > 茶釜のサイトも見たのですが、難しそうでしたので・・ 「茶釜」→「茶筌」 ;-p > Webフォームから入力された$FORM{'word'}のキーワード、空白で区切って > andかorで検索して、テーブルのタイトルと説明で一致したサイトを表示した > いのです。 空白で区切られるのは入力された文字列であって、データベースに格納されてい るデータじゃないんですね。じゃあ、FULLTEXT は使えないっすね。 > キーワードが一つなら、 > where title like %キーワード% or com like %キーワード% > で出来るのですが、2個以上の場合どうするのかな?・・と。 > 結局Perlで前処理して、 > where title like %キーワード% or com like %キーワード% > [and/or] title like %キーワード% or com like %キーワード% > > とひたすら並べる事にしました。 > 他に良い方法がありましたらご教示下さい。 たぶんそれが一番簡単でしょう。私もそのようにすると思います。 ちなみに、以下 Ruby :-) cgi = CGI::new cond = CGI['cond'] where = CGI['word'][0].downcase.split.collect{|w| "title like '%#{Mysql::quote w}%' or com like '%#{Mysql::quote w}%'" }.join(" #{cond} ") -- とみたまさひろ <tommy@xxxxxxxxxx> 日本MySQLユーザ会 http://www.mysql.gr.jp
5046 2002-01-28 22:27 [sin <panocon@xxxxxxx] 検索エンジンのワード検索 5047 2002-01-28 23:03 ┣[Koji KUSANAGI <kusan] 6551 2002-11-08 23:50 ┃┗[HOLA <hola@xxxxxxxxx] 6552 2002-11-09 01:25 ┃ ┗[とみたまさひろ <tomm] 5048 2002-01-28 23:29 ┗[tateyan <tateyan@xxx] 5049 2002-01-29 07:29 ┣[sin <panocon@xxxxxxx] -> 5051 2002-01-29 10:27 ┃┗[とみたまさひろ <tomm] 5050 2002-01-29 09:53 ┗["KAWAI,Takanori" <GC] 5055 2002-01-29 20:49 ┗[sin <panocon@xxxxxxx]