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

[复制链接]
查看11 | 回复3 | 2021-1-27 07:16:22 | 显示全部楼层 |阅读模式




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


分 -->
回复

使用道具 举报

千问 | 2021-1-27 07:16:22 | 显示全部楼层
$sql="SELECTid,title,content,image,cat_id,add_time,click,descriptionFROM".$dou->table('zyzfw').$where."ORDERBYidDESC".$limit;
此为上图一的代码
回复

使用道具 举报

千问 | 2021-1-27 07:16:22 | 显示全部楼层

替换代码里的
后三位倒序从大到小:
ORDERBYright(title,3)DESC
后三位正序从小到大:
ORDERBYright(title,3)ASC
回复

使用道具 举报

千问 | 2021-1-27 07:16:22 | 显示全部楼层
你把数据全部取出来生成一个关联数组
格式为
[0=>[信息1集合],2=>[信息二集合]];

然后遍历这个数组用substr()函数截取title字段最后三位然后用截取后的字段做为键重新生成数组
生成后的大致为
[111=>[信息1集合],112=>[信息二集合]];

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

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行