• ベストアンサー

バグ?「WHERE name LIKE '%犬%'」と書いて「くじら」が抽出される

PHP+MySQLでWEBサイトを構築しています。 以下のように実行すると、 SELECT * FROM `tblA` WHERE `name` LIKE '%犬%' tblAの nameフィールドにある「くじら」までヒットしてしまいます。 --------- name --------- 長犬 柴犬 くじら --------- これはバグでしょうか?なぜこのようになるのでしょうか。 回避策はありませんでしょうか?もし、現在の環境での回避策があればよいのですが。 以上、宜しくお願い致します。 (環境) PHP Version 4.2.3 mysql Client API version 3.23.39

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

mysqlをujis設定にすればよろしいのでは?

wdwdwd
質問者

お礼

ありがとうございます。 調べたところ、 character set latin1 となっていましたので、これを、ujisに変更すればよいわけですね? ところで、このように変更することによって、既存のサイトになんらかの影響はあるのでしょうか?すでにいくつかのサイトを構築しているのですが、例えば、設定変更により、文字化けするなど、他の面でトラブルが発生しないかが心配です。特に心配は不要でしょうか?

その他の回答 (1)

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

EUCの文字コードで見ると、 犬:0xB8A4 く:0xA4AF じ:0xA4B8 ら:0xA4E9 となります。 日本語対応で無い環境の場合、 くじら「A4 AF A4 B8 A4 E9」の中から 犬「B8 A4」を探してマッチします。 -- > 回避策はありませんでしょうか? PHPはやった事無いので、何とも…。

wdwdwd
質問者

お礼

ありがとうございます。 原因が理解できました。

関連するQ&A