php sql语句问题 请问如何按照某个字段的后三位数进行排序?

时间:2021-12-21 14:08:23
php sql语句问题 请问如何按照某个字段的后三位数进行排序?
php sql语句问题 请问如何按照某个字段的后三位数进行排序?

请见上图,第一张图是后台的php程序,第二张图是前台的排序,现在是根据id进行排序的,但是我现在是想根据title的后三位进行排序,也就是按截取title中的数字部分进行排序,请问该如何实现啊?(ps:不懂php,还望各位不吝赐教,越简单越好! php sql语句问题 请问如何按照某个字段的后三位数进行排序?

3 个解决方案

#1


$sql = "SELECT id, title, content, image, cat_id, add_time, click, description FROM " . $dou->table('zyzfw') . $where . " ORDER BY id DESC" . $limit;

此为上图一的  代码

#2



替换代码里的

后三位倒序从大到小:
 ORDER BY right(title,3) DESC

后三位正序从小到大:
 ORDER BY right(title,3) ASC 

#3


你把数据全部取出来  生成一个关联数组
格式为

[0=>[信息1集合],2=>[信息二集合]];


然后遍历这个数组  用substr()函数截取title字段最后三位  然后用截取后的字段做为键重新生成数组
生成后的大致为

[111=>[信息1集合],112=>[信息二集合]];


然后用ksort()排序即可 

注意 数组中的键不能重复  所以生成时要 判断该键是否存在  如果存在(即出现两人票数一致的情况) 给键拼接其它字符



[‘111’=>[信息1集合],‘112a’=>[信息2集合],‘112b’=>[信息3集合]];

#1


$sql = "SELECT id, title, content, image, cat_id, add_time, click, description FROM " . $dou->table('zyzfw') . $where . " ORDER BY id DESC" . $limit;

此为上图一的  代码

#2



替换代码里的

后三位倒序从大到小:
 ORDER BY right(title,3) DESC

后三位正序从小到大:
 ORDER BY right(title,3) ASC 

#3


你把数据全部取出来  生成一个关联数组
格式为

[0=>[信息1集合],2=>[信息二集合]];


然后遍历这个数组  用substr()函数截取title字段最后三位  然后用截取后的字段做为键重新生成数组
生成后的大致为

[111=>[信息1集合],112=>[信息二集合]];


然后用ksort()排序即可 

注意 数组中的键不能重复  所以生成时要 判断该键是否存在  如果存在(即出现两人票数一致的情况) 给键拼接其它字符



[‘111’=>[信息1集合],‘112a’=>[信息2集合],‘112b’=>[信息3集合]];