重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

全角アルファベット(または数字)1文字を含んでいるものを問い合わせるときには、以下のようにLIKE句で指定しますが、

WHERE KOUJI_MEISYO LIKE '%A%'

検索結果には上記の例の場合、全角アルファベット「A」を含んでいるものがヒットしますが、中には全く含まれていないようなものがヒットする場合がありました。今回実際にあったものを載せておきますが、

(指名競争)大分都市計画道路県庁前古国府線道路測量設計業務委託

という文字列です。文字コードの並びで「A」と認識してしまうような症状に陥っているのかなと思いますが、このようなケースに遭われた方はいますか?きちんと検索できるようにするにはどうすればよろしいでしょうか?

アドバイスやヒントを頂ければ幸いです。

A 回答 (2件)

> エンコード SQL_ASCII


ASCII って 1バイト文字ですよね。
マルチバイト文字を正しく認識できないのでは?
    • good
    • 0
この回答へのお礼

そうですね。先ほど自己解決しました。ありがとうございました。

お礼日時:2009/11/20 03:50

ヒントになるでしょうか。



● 環境
CentOS 5.4 (x86_64)
PostgreSQL 8.4.1 (ソースからコンパイル)
エンコード UTF-8

● psql で操作
text型フィールドで試したけれど再現できませんでした。

SELECT * FROM test WHERE c2~'A'; -- c2 はフィールド名
としてもヒットしません。

この回答への補足

ヒントの方、ありがとうございました。

残念ながら、結果は同じでした。当方の環境ですが、

Fedora Core5 (x86_32)
PostgreSQL7.4.2
エンコード SQL_ASCII

になります。

補足日時:2009/11/20 03:22
    • good
    • 0
この回答へのお礼

自己解決しました。

試しにエンコードを SQL_ASCIIからEUC_JPに変更したのですが、このときには問題なく検索できました。ありがとうございました。

お礼日時:2009/11/20 03:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す