十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这个如果想要性能的话,就用下面的sql语句实现:
成都创新互联公司专业为企业提供汾阳网站建设、汾阳做网站、汾阳网站设计、汾阳网站制作等企业网站建设、网页设计与制作、汾阳企业网站模板建站服务,10多年汾阳做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
select orderNo from (select (@rowNum:=@rowNum+1) orderNo , userid ,pid from TABLE,(Select (@rowNum :=0) ) b )t where t.userid=2694
然后php获得这条结果数组,取第一个元素即是排序
如果对这个sql语句有疑问,不明白,可以使用一个比较耗费性能的方法:
select userid from record
执行这条语句,获得一个数组$res
遍历前设置一个记录排序的标识 $seq=1;
for(...){
$userid=$res['userid'];//把第seq 个位置的学号拿出来,跟想要的学号比
if($userid==2694){
break;
}
$seq++;
}
//如果 这个排序标识比结果集数组大小还大,说明没这个userid的记录。
$seq就是排序
我没有测试 你可以自己试一下
SELECT * FROM table_name AS a ORDER BY a.`产业`,a.`市场份额` DESC;
表数据:
海信 冰箱 0.20 1
海信 冷柜 0.20 2
海尔 冰箱 0.19 3
海尔 冷柜 0.19 4
美的 冰箱 0.18 5
美的 冷柜 0.18 6
查询结果:
海信 冰箱 0.20 1
海尔 冰箱 0.19 3
美的 冰箱 0.18 5
海信 冷柜 0.20 2
海尔 冷柜 0.19 4
美的 冷柜 0.18 6
望采纳。
select id,integral,addtime from cos_member_vip order by integral desc,addtime asc--如果需要生成以积分为最高优先,其次以时间为从高到低为条件生成个排名字段,可用--ROW_NUMBER() OVER ()函数
按照并列且占位。
mysql按照并列且占位的规则来排名,例如96分应该是第四名,95分是第6名。
mysql排名并列即相同的值,相同的值保留重复名次,遇到下一个不同的值,跳跃到总共的排名。