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() 错误的问题。

你可能想看:
分享给朋友: