数据库
字符集: utf8
排序规则:utf8_generay_ci
表结构:
mysql> desc chr;
+------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+---------------+------+-----+---------+-------+
| char_1 | char(255) | YES | | NULL | |
| bin | varbinary(20) | YES | | NULL | |
| name | varchar(50) | YES | | NULL | |
| static_bin | binary(30) | YES | | NULL | |
+------------+---------------+------+-----+---------+-------+
中文排序会出现乱序:
mysql> select * from chr order by name;
+--------------+--------------+--------------+--------------------------------+
| char_1 | bin | name | static_bin |
+--------------+--------------+--------------+--------------------------------+
| 不 | 不 | 不 | 不 |
| 他 | 他 | 他 | 他 |
| 发的萨芬 | 发的萨芬 | 发的萨芬 | 发的萨芬 |
| 啊 | 啊 | 啊 | 啊 |
| 阿 | 阿 | 阿 | 阿 |
| 额饿啊 | 额饿啊 | 额饿啊 | 额饿啊 |
+--------------+--------------+--------------+--------------------------------+
6 rows in set (0.01 sec
mysql> select *From chr order by convert(name using ‘gbk‘) collate ‘gbk_chinese_ci‘
-> ;
+--------------+--------------+--------------+--------------------------------+
| char_1 | bin | name | static_bin |
+--------------+--------------+--------------+--------------------------------+
| 阿 | 阿 | 阿 | 阿 |
| 啊 | 啊 | 啊 | 啊 |
| 不 | 不 | 不 | 不 |
| 额饿啊 | 额饿啊 | 额饿啊 | 额饿啊 |
| 发的萨芬 | 发的萨芬 | 发的萨芬 | 发的萨芬 |
| 他 | 他 | 他 | 他 |
+--------------+--------------+--------------+--------------------------------+
6 rows in set (0.00 sec)
mysql>
原文地址:http://lovexx.blog.51cto.com/131664/1929087