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

KAWAI,Takanori GCD00051 @ nifty.ne.jp
2002年 7月 17日 (水) 14:09:56 JST


川合孝典です。

----- Original Message -----
From: "Hashimoto, Masaru" <hashimoto-m @ comtecc.net>
To: <pgsql-jp @ ml.postgresql.jp>
Sent: Wednesday, July 17, 2002 12:21 PM
Subject: [pgsql-jp: 26708] Re: Likeの部分一致で検索


> 橋本です。
(中略)
> ==ヒット件数取得==
> SELECT Count(*) As cnt  FROM tbl
> WHERE
> ( (
> tbl.keyword1  ILIKE '%windows%'
> OR tbl.keyword2  ILIKE '%windows%'
> OR tbl.keyword3  ILIKE '%windows%'
> OR tbl.keyword4  ILIKE '%windows%'
> OR tbl.keyword5  ILIKE '%windows%'
(以下略)
素朴に「すごいことになってますねぇ」だったりしますが...。
部分一致で検索するということでは、総なめしますから
そうそう速くなることはないとは思いますが、
中間一致でいいのであれば、

SELECT Count(*) As cnt  FROM tbl
WHERE
  keyword1 || '::' || keyword2 || '::' || keyword3 || '::' ||
  keyword4 || '::' || keyword5 || '::' || keyword6 || '::' ||
  keyword7 || '::' || keyword8 || '::' || keyword9 || '::' ||
  keyword10|| '::' || keyword11|| '::' || keyword10|| '::' ||
  keyword13|| '::' || keyword14|| '::' || keyword15|| '::' ||
  keyword16|| '::' || keyword17|| '::' || keyword18
    ~* 'windows|ウィンドウズ|ウインドウズ';

としてみるとか?
#タイプにかかる時間は画期的に短くなるでしょ(^^;

'::'はそのままつなげると"win"次で"dows"でもマッチしちゃうので
つけている単なる区切り文字です。事情に合わせて変えてください。

===================================================
川合 孝典 (Hippo2000)
   DBI日本語メーリングリスト管理人、Kansai.pm所属
   kwitknr @ cpan.org GCD00051 @ nifty.ne.jp
   http://member.nifty.ne.jp/hippo2000、http://www.hippo2000.info/
Perl 6開発補助金が底を突く?
 http://member.nifty.ne.jp/hippo2000/perlgrant.htm
===================================================




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