MySQL UTF-8 编码下使中文排序生效的办法

1.查询的时候是加入转换函数

SELECT`hotel_name`

FROM`hotel_base`

ORDER BY convert(`hotel_name`

USING gbk)

COLLATE gbk_chinese_ci

 

2.设置单个需要中文排序字段的编码

ALTER TABLE tbl_student CHANGE name  VARCHAR( 64 ) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFAULT NOT NULL;

 

3.还有一种是用二进制 binary 排序

前提是把 gbk/gb2312 的汉字编码以 utf-8 的格式存进去,所以一个汉字被保存成 4 个字节,而不是真正的 3 个字节。如果数据库中真的以 utf-8 的字符集保存,则二进制 binary 排序会得出错误结果(非拼音排序)。另外,以 utf-8 保存 gbk/gb2312 的编码会带来 char_length() 错误的问题。

posted @ 2022-11-23 10:11  KeyG  阅读(241)  评论(0)    收藏  举报