mysql:13289
From: Ushiro <Ushiro <ushi9999@xxxxxxxxxx>>
Date: Sat, 02 Sep 2006 18:16:45 +0900
Subject: [mysql 13289] ひらがな先頭文字のselectができない
いつもお世話になります。投稿は初めてです、よろしくお願いします。 ひらがな(・かたかな)のSELECTがしたいのですがどうしても うまくいかないのです。 やりたいのは「あるフィールドをあ行、か行、さ行、、わ行、英字、その他に分 類する」ことです。 まずひらがな(・カタカナ)分類を行っていますが フィールドの先頭のひらがなの前方一致をするところがうまくいきません。 あるフィールド(aaa)が (1)「たのテスト」 (2)「たのテスト2」 (3)「だのテスト」 (4)「にのテスト」 というデータがあります。 「た行」を選択するのに「ただタダ....ド」をlike検索します。 SELECT * FROM testtable WHERE ( aaa LIKE "た%" or aaa LIKE "だ%" or aaa LIKE "タ%" or aaa LIKE "ダ%" or aaa LIKE "ち%" or aaa LIKE " ぢ%" or aaa LIKE "チ%" or aaa LIKE "ヂ%" or aaa LIKE "つ%" or aaa LIKE "づ%" or aaa LIKE "ツ%" or aaa LIKE "ヅ%" or aaa LIKE " て%" or aaa LIKE "で%" or aaa LIKE "テ%" or bdesc LIKE "デ%" or aaa LIKE "と%" or aaa LIKE "ど%" or aaa LIKE "ト%" or aaa LIKE " ド%" ) ORDER BY aaa ASC 本来は(1)(2)(3)が選択されるべきなのですが、(4)「に」も入ってきます。 (aaa の前に BINARY をつけると、何も選択されなくなりました) さらに絞り込んで「た」のみだと SELECT * FROM testtable WHERE ( aaa LIKE "た%" or aaa LIKE "だ%" or aaa LIKE "タ%" or aaa LIKE "ダ%") なら正しく(1)(2)(3)になりますが、以下のように「ち」にすると SELECT * FROM testtable WHERE ( aaa LIKE "ち%" or aaa LIKE " ぢ%" or aaa LIKE "チ%" or aaa LIKE "ヂ%") 何もないはずが、(3)「だ」が選択されます。「つ」も同様です。 「と」では、 SELECT * FROM testtable WHERE ( LIKE "と%" or aaa LIKE " ど%" or aaa LIKE "ト%" or aaa LIKE "ド%" ) (4)「に」が選択されます。 ================== PHPスクリプトはEUCです。 MySQLデータベースがUTF8(UTF-8 Unicode)なので、その辺りが原因でしょうか? ちなみに「た行」選択に当初は範囲指定(「た」>= and <=「ど」等)としてい たのですが、うまくいかないためlike切り替えました。しかし 同様の問題にあたてしまいました。 日本語の正規表現は使えないですし... 本当に行き詰っています。 何か少しでもヒントをお持ちの方、よろしくお願いいたします。 環境 PHP 4.4.2 MySQL 4.1.11 Apache/1.3.37 mbstring.encoding_translation On mbstring.func_overload 0 mbstring.http_input EUC-JP mbstring.http_output EUC-JP mbstring.internal_encoding EUC-JP mbstring.language Japanese mbstring.script_encoding EUC-JP mbstring.substitute_character *-* USHIRO Kaori <ushi9999@xxxxxxxxxx> *-*
-> 13289 2006-09-02 18:16 [Ushiro <ushi9999@xxx] ひらがな先頭文字のselectができない 13290 2006-09-02 19:03 ┗[nomoto <shin-1@xxxxx] 13291 2006-09-04 09:27 ┗[Ushiro <ushi9999@xxx] 13292 2006-09-04 09:46 ┗[Ushiro <ushi9999@xxx] 13304 2006-09-05 09:35 ┗[Ushiro <ushi9999@xxx]