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就是排序
我没有测试 你可以自己试一下
在表中查询ID为1的A的值(查询到的结果是3,4,6),然后这个3,4,6又存在表2中,如今我想这个3,4,6 要根据表2的TIME进行一个时间排序(DESC),然后这个(3,4,6)根据这个TIME进行排序再输出。按照并列且占位。mysql按照并列且占位的规则来排名,例如96分应该是第四名,95分是第6名。
mysql排名并列即相同的值,相同的值保留重复名次,遇到下一个不同的值,跳跃到总共的排名。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)