mysql:7514
From: Masahiro Fukuda <Masahiro Fukuda <masahif-ml@xxxxxxxxxx>>
Date: Thu, 17 Apr 2003 00:56:15 +0900
Subject: [mysql 07514] 日本語文字列の一部で group by した場合の挙動について
こんにちは。Ynotの福田です。
日本語の文字列の一部分を切り出して、group by した場合に
正しく動作しないという状況が起きています。
具体的には、下記のような状況です。
--------------------------------------------------------
CREATE TABLE mojilist (
moji varchar(10)
);
insert into mojilist values('あお');
insert into mojilist values('あか');
で、テーブルを作り....
mysql> select left(moji, 1) as moji1 from mojilist;
+-------+
| moji1 |
+-------+
| あ |
| あ |
+-------+
2 rows in set (0.00 sec)
→ 文字列の1文字目だけが正しく取り出せている
mysql> select left(moji, 1) as moji1 from mojilist group by moji1;
+-------+
| moji1 |
+-------+
| ・ |
+-------+
1 row in set (0.01 sec)
→ どうやら1バイト目だけが取り出されている?
mysql> select left(moji, 2) as moji1 from mojilist group by moji1;
+-------+
| moji1 |
+-------+
| あ |
+-------+
1 row in set (0.00 sec)
→ どうやら2文字でなく、2バイト取り出されている?
--------------------------------------------------------
といった形で、日本語文字列の一部を取り出した結果を group by すると、
正しく、動作していないように感じるのです。
テストした環境は...
OS: RedHat7.3
MySQL: 3.23.56(www.mysql.comよりダウンロードしたバイナリ)
/etc/my.cnf の中身
-------------------------------------
[mysql]
default-character-set=sjis
[mysqldump]
default-character-set=sjis
[mysqld]
default-character-set=sjis
datadir=/dbdata/mysql
set-variable = max_connections=8192
-------------------------------------
です。
もし、同様の問題の解決方法をご存じの方がいらっしゃいましたら、
教えていただけないでしょうか?
よろしくお願いします。
--
Masahiro Fukuda mailto:masahif-ml@xxxxxxxxxx