欢迎光临
我们一直在努力

字符集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)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。