• 締切済み

MySQLで日本語検索

MySQL初心者のものです。 今PHPとMySQLを利用して検索システムを作っています。 しかし日本語検索がどうしてもうまくいきません。 一応「教えてgoo」でも探してみたのですが、解決しませんでした。 MySQLで、 テーブル名 table フィールド名 field とすると、 select * from table where field like '%キーワード%'; のように検索してみたのですが、思うような結果が返ってきません。 ネットで検索すると「senna」をインストールと書かれていましたが、 そういったものをインストールしなければMySQLで日本語検索は出来ないものなのでしょうか? ちなみに MySQL5.0 PHP5.2.1 を利用しています。

みんなの回答

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

#1さんのおっしゃるように文字コードの問題でしょう。 それとは別にそもそもSQLで'%キーワード%'という表現はパフォーマンスが期待できません。 なお日本語全文検索については別途工夫が必要です。

回答No.1

MySQLの文字コードは、何を使用していますか? MySQL Command Line Client等での「status」コマンドの表示内容か、 SQLが実行できる状態で、「show variables like '%char%'」での表示結果を教えてください。 >検索してみたのですが、思うような結果が返ってきません 具体的に、どんな検索キーワードで、結果はどうなったのでしょうか? ※この質問内容からだけでは、SJISの'5C'問題なのか判断できません。

lowright
質問者

補足

「show variables like '%char%'」での表示結果です。 mysql> show variables like '%char%'; +--------------------------+---------------------------------------------------- -----+ | Variable_name | Value | +--------------------------+---------------------------------------------------- -----+ | character_set_client | ujis | | character_set_connection | ujis | | character_set_database | ujis | | character_set_filesystem | binary | | character_set_results | ujis | | character_set_server | ujis | | character_set_system | utf8 | | character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.0\share\chars ets\ | +--------------------------+---------------------------------------------------- -----+ ショッピングサイトを作っていて、例えば「えんぴつ」と検索した結果は、 Empty set となっていしまいます。(えんぴつは登録してあります。)