您现在的位置是:网站首页>PHP技术PHP技术

mysql中文首字母排序失败的解决方法

草谷2019-03-30PHP技术

简介在TP5框架使用中发现由于数据库编码方式utf-general_ci不支持中文首字母ASCII编码排序的解决方法

在开发中遇到一个需求,使用excel导出用户订单数据的时候,需要对用户的中文姓名进行排序导出。

经过尝试,直接写order('name','ASC')的链式操作是没有效果的。。。

经查发现我常用的数据库编码方式是utf-general_ci的编码格式,这个格式不支持中文拼音字母排序的方式,


所以需要在排序的时候对其进行一次转码操作。代码如下:

$xlsData  = Db::name('fund_order')
            ->order('CONVERT( truename USING gbk ) COLLATE gbk_chinese_ci','ASC')
            ->select();


这个方法可以实现按照字段值第一个字的首拼字母在ascII表中的排序顺序进行排序。


很赞哦! (0)

文章评论