千家信息网

字符集utf8中文排序问题

发表于:2025-02-06 作者:千家信息网编辑
千家信息网最后更新 2025年02月06日,数据库字符集: utf8排序规则:utf8_generay_ci表结构:mysql> desc chr;+------------+---------------+------+-----+-----
千家信息网最后更新 2025年02月06日字符集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>














0