[pgsql-jp: 39497] Re: insensitiveな日本語検索

H.Harada umi.tanuki @ gmail.com
2008年 7月 14日 (月) 12:56:19 JST


以前こんなことをしたことがあります。

where translate(query, 'あいうえおかきくけこさしすせそたちつてと...', 'アイウエオカキクケコサシスセソタチツテト...') =
	translate(name, 'あいうえおかきくけこさしすせそたちつてと...', 'アイウエオカキクケコサシスセソタチツテト...')

見にくいですが。


原田

2008/07/14 11:44 陶山 泰 <postgrml @ suyama.net>:
> 山下さん、こんにちは。陶山です。
>
>        Mon, 14 Jul 2008 11:36:58 +0900 の
>        [pgsql-jp: 39495] Re: insensitiveな日本語検索
>        に関するメールについてのお返事です。
>
> 山下 雄大> やはりクライアントアプリケーション or
> 山下 雄大> サーバアプリケーション上でユーザより入力された値を
> 山下 雄大> もとに
> 山下 雄大>
> 山下 雄大>   where name ~ '[とト][まマ][とト]';      (適当)
> 山下 雄大>   where name ~ '^[とト][まマ][とト]$';    (厳密)
> 山下 雄大>   where name ~ '^(トマト|とまと|トマと)$';(別解)
> 山下 雄大>
> 山下 雄大> のような文を作成しないとダメみたいですね。
> 山下 雄大>
> 山下 雄大> もっと楽できないものかと思っておりました :-(
>
> 私だったら(というかみんなそうだと思うけど)
> クライアントアプリケーション or
> サーバアプリケーション上でユーザより入力された値を
> もとに
>  'トマト' → 'トマト' (無変換)
>  'とまと' → 'トマト'
>  'トマと' → 'トマト'
> とすべての文字をカタカナに変換しておき、
> where name = 'トマト';
>
>  もしくは
> データ入力時に専用桁(例えば keyVal)(DB作成時に作成)に、同じ変換を
> 施した値を格納しておき
> where keyVal = 'トマト';
> とします。
>



-- 
Hitoshi Harada



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