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() 错误的问题。
你可能想看: