庆云php

庆云php

使用UTF-8的字段对中文排序,MYSQL中文排序时,不是按拼音字排序的,怎么办

PHP 0
使用UTF-8的字段对中文排序,MYSQL中文排序时,不是按拼音字排序的,怎么办 针对使用utf8字符集的数据库,以下两个方法非常实用: 1)直接转换字段为gbk,比如: SELECT * FROM table ORDER BY CONVERT( chinese_field USING gbk ) ; 或者干脆将相应字段改为gbk字符集。 这种方法很实用,不用改任何东西。 2)附加字段或表法 创建一个新表,用来存储拼音声母和使用该声母的汉字首字的对应关系。然后写一个函数,每次排序时通过转换为gbk再查表的方法得到字段内容首字的声母的方法。 此方法比较费神。但速度快。 字段GBK字符集也不全是按拼音排序的,,因为GBK内码编码时本身就采用了拼音排序的方法(常用一级汉字3755个采用拼 音排序,二级汉字就不是了,但考虑到人名等都是常用汉字,因此只是针对一级汉字能正确排序也够用了)。 如果要精确的,还是使用方法2更靠谱。