[前][次][番号順一覧][スレッド一覧]

mysql:12105

From: "Shuichi Tamagawa" <"Shuichi Tamagawa" <shuichi@xxxxxxxxxx>>
Date: Wed, 7 Sep 2005 16:42:37 -0700
Subject: [mysql 12105] Re: MySQL4.1.14でのLIKE演算子

玉川です。

私の環境でも同様の現象が確認できましたので、
新たにバグとして登録しておきました。
http://bugs.mysql.com/bug.php?id=13046

既に'Verified'のステータスになってるので近々
修正されると思います。

--
Shuichi Tamagawa
shuichi@xxxxxxxxxx
tamagawa@xxxxxxxxxx

> -----Original Message-----
> From: a2cf@xxxxxxxxxx [mailto:a2cf@xxxxxxxxxx]
> Sent: Wednesday, September 07, 2005 4:54 AM
> To: ml@xxxxxxxxxx
> Subject: [mysql 12103] MySQL4.1.14でのLIKE演算子
>
> atsushiです。
>
> 2ヶ月ほど前にMySQL4.1.12でのLIKE演算子に関して質問したものです。
> ([mysql 11642]  http://bugs.mysql.com/bug.php?id=11650 )
>
> その後、これを修正したMySQL4.1.14がダウンロードできるようになったので
すが、また新たな問題が発生しました。
> 前回同様、バイト数指定のインデックスを張ったテーブルに対してselectをす
ると、値に「_」や「%」を含む時、条件によって検
> 索結果が0件になります。
> 具体的には、以下で作成したテストテーブルで、インデックスに指定した3バ
イト目までの部分の値に「_」や「%」を含む時、マッチしなくなります。
> 3バイトより後の部分に「_」や「%」を含む場合は問題ありません。
> また、バイト数指定のインデックスでない場合は、全て問題ありませんでし
た。
>
> 他の方でも同様の問題は発生しておりますでしょうか?
>
> 環境: MySQL4.1.14 Linux (x86, glibc-2.2, static, gcc) Standard版
>
> ----------------------
> ●テストテーブル作成
> drop table if exists t1;
> create table t1(c1 varchar(50) not null, index(c1(3))) engine
> = innodb default
> character set = cp932;
>
> insert into t1 values('abcdef');
> insert into t1 values('_bcdef');
> insert into t1 values('a_cdef');
> insert into t1 values('ab_def');
> insert into t1 values('abc_ef');
> insert into t1 values('abcd_f');
> insert into t1 values('abcde_');
>
> ●テスト結果
> select * from t1 where c1 like 'ab_def';  →2件 正常
>
> select * from t1 where c1 like 'ab\_def';  →0件 異常 「ab_def」のはず
> select * from t1 where c1 like 'ab#_def' escape '#';  →0件 異常 同上
>
> (インデックスに指定したバイト数より後のところでは正しい)
>
> select * from t1 where c1 like 'abc_ef';  →2件 正常
>
> select * from t1 where c1 like 'abc\_ef';  →1件 正常
> select * from t1 where c1 like 'abc#_ef' escape '#';  →1件 正常
> ----------------------
>
>
> 上記の「_」を「%」に変えたテストも同様でした。
> また、cp932以外にutf8、ascii、latin1でも同様でした。(%はテストしていま
せん)
>
> sjisにした場合は、「\」の扱いからか、以下のSQLだけ検索結果が異なりまし
た。
> これは自分のSQL記述の問題かと思いますが・・・。
>
> select * from t1 where c1 like 'abc\_ef';  →0件 異常? 「abc_ef」のは> select * from t1 where c1 like 'abc\\_ef';  →0件 異常? 同上
> select * from t1 where c1 like 'abc#_ef' escape '#';  →1件 正常
>
>
>
> 何とぞよろしくお願いします。
>
>
>


[前][次][番号順一覧][スレッド一覧]

     12103 2005-09-07 20:54 [<a2cf@xxxxxxxxxx>   ] MySQL4.1.14でのLIKE演算子               
->   12105 2005-09-08 08:42 ┗["Shuichi Tamagawa" <]                                       
     12106 2005-09-08 09:03  ┗[<a2cf@xxxxxxxxxx>   ]