MySQL中文utf8排序问题 [ 2.0 版本 ]
网站开发接近尾声,几乎所有的编码都是采用utf8编码,但是最后在采用gridview显示人名,并排序的时候出现问题了。不是按照拼音或者笔画啊,乱七八糟的排序。也百度了应当采用gbk的方式才可以正确排序,也知道怎么加这个转换gbk的语句,但是在gridview点击行首排序咋个处理呢?
先谢谢啦。
最佳答案
-
在 Search model 内配置
setSort()
内的attributes
property 即可。下面的例子将post.title
列设置为按拼音排序:// in PostSearch public function search($params) { ... $dataProvider->setSort([ 'attributes' => [ ... 'title' => [ 'asc' => ['CONVERT(title USING gbk)' => SORT_ASC], 'desc' => ['CONVERT(title USING gbk)' => SORT_DESC], ], ], ]); }
共 7 条回复bubifengyun 回复于 2016-01-30 19:29 回复但是现在抬头无法使用了,我再看看该怎么弄。
bubifengyun 回复于 2016-01-30 19:29 回复但是现在抬头无法使用了,我再看看该怎么弄。
bubifengyun 回复于 2016-01-30 19:35 回复谢谢,忘了把其中的title加进来了。title应当换为各个的排名名称。
bubifengyun 回复于 2016-01-30 19:50 回复查了一下 ,还有一个getSort,获取$getsorts后,然后对$sorts->attributes这个array需要修改的地方进行修改。然后把他传给setSort。太感谢啦!
bubifengyun 回复于 2016-01-30 20:14 回复查了一下 ,还有一个getSort,获取$getsorts后,然后对$sorts->attributes这个array需要修改的地方进行修改。然后把他传给setSort。太感谢啦!
bubifengyun 回复于 2016-01-30 20:16 回复谢谢,忘了把其中的title加进来了。title应当换为各个的排名名称。
bubifengyun 回复于 2016-02-05 13:15 回复非常感谢你的回答,我把他整理为一个教程吧。
其他 1 个回答
-
SELECT 字段名 FROM 表 ORDER BY CONVERT(字段名 USING gbk) ASC;
共 4 条回复bubifengyun 回复于 2016-01-28 13:12 回复我也搜索到这个答案了,不过我的问题是在gridview里面如何排序。查看代码知道,每次都去调用xxxxSearch->search函数,gridview排序的方法在vendor文件夹下,这个要怎么办呢?谢谢啦
@bubifengyun 不用 yii 的前端类所以不太清楚,但是你点击的时候肯定是传递参数过去才能按照自己想要的排序,试试模型的 orderby 方法
bubifengyun 回复于 2016-01-28 16:20 回复嗯嗯,思路是对的,我再去调试一下,看源代码可否加配置。
bubifengyun NJSH
最后登录:2022-10-29
在线时长:59小时54分
- 粉丝36
- 金钱10
- 威望160
- 积分2200