MYSQL 排名问题
发布网友
发布时间:2022-04-11 10:18
我来回答
共3个回答
热心网友
时间:2022-04-11 11:47
这个如果想要性能的话,就用下面的sql语句实现:
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就是排序
热心网友
时间:2022-04-11 13:05
没看明白你想问什么。。。
热心网友
时间:2022-04-11 14:40
需求说清楚些,几个重要的表字段贴出来