[前][次][番号順一覧][スレッド一覧]

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]