電子書籍の厳選無料作品が豊富!

mysql4.0.25でlike binaryを使って日本語検索をしていますが
インデックスを使いたいので前方一致で条件を作ると検索されません。
文字コードはeuc-jpです。
部分一致でしか検索にひっかからないのですが
文字コードなど関係があるのでしょうか?

A 回答 (2件)

>mysql4.0.25



かなり古いバージョンので、試す環境がないのですが
MySQL5系でチェックすると

CREATE TABLE `tbl`(`data` VARCHAR(20)) CHARACTER SET `ujis` COLLATE `ujis_japanese_ci` ;
INSERT INTO `tbl` VALUES('あいうえお'),('あういおえ'),('おあういえ'),('えあいうお'),('かきくけこ');
と、しておいて

SELECT * FROM `tbl` WHERE `data` LIKE BINARY 'あ%';
SELECT * FROM `tbl` WHERE `data` LIKE BINARY '%あ%';
SELECT * FROM `tbl` WHERE `data` LIKE BINARY 'あい%';
SELECT * FROM `tbl` WHERE `data` LIKE BINARY '%あい%';

をそれぞれ実行しても、想定どおりの戻りがあるので特に問題なさそうですね
COLLATEについては`ujis_bin`でも問題ないです。

なにか入力みすか勘違いのような気がしますが・・・
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
何度も確認をしているので、入力ミスはないと思うのですが…
やはりバージョンの関係があるのでしょうか…
もう少し調べてみます。
ありがとうございました!!

お礼日時:2014/06/13 21:14

>インデックスを使いたいので前方一致で条件を作ると検索されません。


>文字コードはeuc-jpです。
>部分一致でしか検索にひっかからないのですが

ちょっと状況がわからないのですが
'あ%'だとひっかからないけど
'%あ%'だとヒットするという意味でしょうか?

この回答への補足

説明不足ですみません。
例えば「あいうえお」だとすると
'あ%'の一文字だとひっかかりますが、'あい%'だとひっかかりません。
'%あい%'や'%あいう%'ではひっかかります。

補足日時:2014/06/12 17:18
    • good
    • 0

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