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

mysql:8373

From: とみたまさひろ <とみたまさひろ <tommy@xxxxxxxxxx>>
Date: Tue, 4 Nov 2003 15:25:13 +0900
Subject: [mysql 08373] Re: カタカナの曖昧検索

とみたです。

On Tue, 04 Nov 2003 12:54:33 +0900
Shinya Kuroda <kuroda@xxxxxxxxxx> wrote:

> > おそらく使用している文字コードがシフトJISなのだと思います。
> > その場合は、「default-character-set=sjis」とする必要があります。

> sjisにして、INSERTからやり直してみましたが、同じ結果でした・・・
> 全く原因が分かりません。。

文字コードにばかり目がいってました。もう一度クエリを良く見たら、

> > > mysql> select * from test2 WHERE name LIKE binary '%クロダ%';

となってますが、「binary」が余計です。

	select * from test2 where name like '%クロダ%';

とやってみてください。

「binary」をつけると、文字の比較はバイト単位で行なわれます。「クロダ」
をシフトJISコードで表わすと、「83 4E 83 8D 83 5F」ですが、最後のバイト
の「5F」は「_」で、LIKE で使用すると「任意の一文字」を表わすワイルドカー
ドとして扱われます。一方、「クロカワ」は「83 4E 83 8D 83 4A 83 8F」で
す。「83 4E 83 8D 83」まで一致しているために検索条件に引っ掛かります。

「binary」をつけない場合は、ちゃんとシフトJISコードでの一文字(2バイト)
単位で比較されるため、このような現象は起こらないはずです。

-- 
とみたまさひろ <tommy@xxxxxxxxxx>
日本MySQLユーザ会 http://www.mysql.gr.jp

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

      8328 2003-10-27 16:25 [Shinya Kuroda <kurod] カタカナの曖昧検索                      
      8356 2003-11-01 01:31 ┗[とみたまさひろ <tomm]                                       
      8368 2003-11-04 12:54  ┗[Shinya Kuroda <kurod]                                     
->    8373 2003-11-04 15:25   ┗[とみたまさひろ <tomm]                                   
      8374 2003-11-05 00:41    ┗[Shinya Kuroda <kurod]