对于包含中文的字段加上"binary"属性,使之作为二进制比较,例如将"name char(10)"改成"name char(10)binary"。

解决方案 »

  1.   

    order by binary 中文字段
      

  2.   

    多谢大家!我研究了一下,初步了解:用二进制 binary 排序的前提是把 gbk/gb2312 的汉字编码以 utf-8 的格式存进去,所以一个汉字被保存成 4 个字节,而不是真正的 3 个字节。如果数据库中真的以 utf-8 的字符集保存,则二进制 binary 排序会得出错误结果(非拼音排序)。另外,以 utf-8 保存 gbk/gb2312 的编码会带来 char_length() 错误的问题。不知对否,烦请多多指教!
      

  3.   

    基本有结果了,看了 mysql 的文档后,明白了直接的排序办法没有!
    让我们期待 utf8_chinese_ci 的发布。
    在这之前只能考虑间接的办法了。多谢大家!