[pgsql-jp: 32048] マルチバイト文字列のLIKEによる検索がうまく行きません

Kinoshita Makoto kino @ aa.mbn.or.jp
2004年 1月 17日 (土) 04:26:17 JST


木下といいます。

PHP4のスクリプトの中から,
以下のSQL文を実行した場合,意図したように検索できます。

SELECT syain.syain_code, syain.syainmei,kinmukeitai.kinmukeitaimei, 
       syain_syozoku.syain_syozokumei 
FROM (syain INNER JOIN kinmukeitai ON syain.kinmukeitai_code = 
      kinmukeitai.kinmukeitai_code) INNER JOIN syain_syozoku ON 
      syain.syain_syozoku_code = syain_syozoku.syain_syozoku_code 
WHERE (syain.syainmei LIKE '%木下%') and 
       kinmukeitai.kinmukeitai_code=1

しかし,木下のところを他の名字にしたとき,DB中にはその名字が存在するにも
かかわらず,1件も存在しないという結果になってしまいます。
名字の文字列によって,検索できたりできなかったりします。
そこで,LIKEのところをSIMILAR TOや~などで置き換えてみても,結果は改善さ
れませんでした・・・。
確かLIKEはマルチバイトに対応したということが書いてあった記憶があるのです
が・・・どうしてでしょうか?

私の使用している環境をご説明致します。
(1)O.S.: FreeBSD 4.9R
(2)PostgreSQL: version 7.3.3 ※7.3.4, 7.3.5を他のPCに入れ試してみました
   が,同じ結果でした。
            configureで指定したオプション:--enable-multibyte=EUC_JP 
                                           --enable-syslog

(3)PHP4:version 4.3.2
            文字コード指定:EUC_JP





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