首页 > 代码库 > 字符集utf8中文排序问题

字符集utf8中文排序问题

数据库

字符集: 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> 














字符集utf8中文排序问题