プロが教える店舗&オフィスのセキュリティ対策術

お世話になります。
MySQLを使用して、日本語のLIKE検索について期待する結果が得られず困っております。
ご教授いただきたく投稿させていただきました。何卒宜しくお願いします。

●期待する結果
日本語を含むフィールドを対象にLIKE検索を実行し、該当するレコードを抽出したい。

●現状の結果
検索する文字列によって、全く関係のないレコードが含まれる場合がある。
※正しく結果を得られる場合もあります。
(特に漢字一文字などの場合が多い様な気がします。)

●SQL
SELECT * FROM t_product WHERE detail LIKE '%日本語の文字列%';

因みに環境他は以下のとおりです。

------------------------------------------------------------------
環境
------------------------------------------------------------------
OS:RedHatES2.1
MySQL:3.23.58

------------------------------------------------------------------
/etc/my.cnf
------------------------------------------------------------------
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

[mysql.server]
user=mysql
basedir=/var/lib

[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

------------------------------------------------------------------
PHPMyAdminで実行
------------------------------------------------------------------
SHOW VARIABLES LIKE '%char%'

character_set->latin1
character_sets->latin1 big5 cp1251 cp1257 croat czech danish dec8
dos estonia euc_kr gb2312 gbk german1 greek hebrew hp8 hungarian
koi8_ru koi8_ukr latin2 latin5 swe7 usa7 win1250 win1251 win1251ukr
ujis sjis tis620
(適宜改行しております。)
------------------------------------------------------------------

宜しくお願いします。

A 回答 (2件)

>character_set->latin1


latin1はヨーロッパ圏で利用される文字コードですよ。
せめてUTF8,EUC-JP,S=JISを利用しましょう。

PHPMyAdminを使っているようなので各文字セットに関しては
トップページの「文字セットと照合順序」から説明を見ることができます。
    • good
    • 0
この回答へのお礼

uki629様、ご回答有難うございます。
お伝えする情報が不足しておりました。申し訳ございません。
phpMyAdminのバージョンは2.5.3で少々古いものです。
「文字セットと照合順序」の代わりに「Language」がございます。
ここには、japanese(ja-euc)がデフォルトの設定になっています。
(その他プルダウンの日本語関連のメニューは、japanese(ja-sjis)があります。)
やはり、MySQLの再コンパイルが必要なのでしょうか?

お礼日時:2007/12/14 23:20

文字コードの問題では?

    • good
    • 0
この回答へのお礼

inu2様
お返事遅くなりまして申し訳ございません。
ご回答有難うございます。
文字コードの問題なのは、何となくですが分かっているのですが・・・具体的な解決策、ヒントなどお教えいただけないでしょうか?
宜しくお願いします。

お礼日時:2007/12/13 20:57

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

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