数据库中某项其中一个值在该项排第几,php+mysql
想做一个打卡次数排名的程序,现在有一个表,内容如下:xuehaocishu100110321112612610……然后需要得出某一个xuehao下的值对应的cishu,在...
想做一个打卡次数排名的程序,现在有一个表,内容如下:
xuehao cishu
100 1
103 21
112 6
126 10
……
然后需要得出某一个xuehao下的值对应的cishu,在整个表里cishu排第几
比如说 我想知道xuehao为112的人他打卡次数是6次,那么按照次数排序,是排第几
环境是php+mysql
求php实现代码,谢谢,可以再加分 展开
xuehao cishu
100 1
103 21
112 6
126 10
……
然后需要得出某一个xuehao下的值对应的cishu,在整个表里cishu排第几
比如说 我想知道xuehao为112的人他打卡次数是6次,那么按照次数排序,是排第几
环境是php+mysql
求php实现代码,谢谢,可以再加分 展开
2个回答
推荐于2016-08-28
展开全部
这个如果想要性能的话,就用下面的sql语句实现:
select orderNo from (select (@rowNum:=@rowNum+1) orderNo , xuehao,cishu from record,(Select (@rowNum :=0) ) b
order by cishu desc)t where t.xuehao=112
然后php获得这条结果数组,取第一个元素即是排序
如果对这个sql语句有疑问,不明白,可以使用一个比较耗费性能的方法:
select xuehao,cishu from record order by cishu desc
执行这条语句,获得一个数组$res
遍历前设置一个记录排序的标识 $seq=1;
for(...){
$xuehao=$res['xuehao'];//把第seq 个位置的学号拿出来,跟想要的学号比
if($xuehao==112){
break;
}
$seq++;
}
//如果 这个排序标识比结果集数组大小还大,说明没这个学号的记录,否则,就是这个学号打卡次数的排序。
$seq就是排序
select orderNo from (select (@rowNum:=@rowNum+1) orderNo , xuehao,cishu from record,(Select (@rowNum :=0) ) b
order by cishu desc)t where t.xuehao=112
然后php获得这条结果数组,取第一个元素即是排序
如果对这个sql语句有疑问,不明白,可以使用一个比较耗费性能的方法:
select xuehao,cishu from record order by cishu desc
执行这条语句,获得一个数组$res
遍历前设置一个记录排序的标识 $seq=1;
for(...){
$xuehao=$res['xuehao'];//把第seq 个位置的学号拿出来,跟想要的学号比
if($xuehao==112){
break;
}
$seq++;
}
//如果 这个排序标识比结果集数组大小还大,说明没这个学号的记录,否则,就是这个学号打卡次数的排序。
$seq就是排序
更多追问追答
追问
恩,类似第一个的方法我也试过,当时看的这个http://zhidao.baidu.com/question/516888937.html问题的解决方案,也得出了排序的结果
但是现在想要知道 某一个学号的打卡次数排第几应该怎么求啊?
我之前问了一个问题http://zhidao.baidu.com/question/569980187
如果能解决 两个题目的分一起给你
追答
某一个学号的打卡次数排第几应该怎么求啊 ,你新学php?还是新学sql?上面说的很清楚了啊。
第一种方法,把所有的人打卡次数按逆序排列,组成一个结果集,然后用想要找的那个学号作为条件,从这个结果集里查找。就找到这个学号的打卡次数排序了啊。
第二种方法,更好理解,把所有的打卡次数排序全取出来,组成一个数组集合,然后从头遍历,每遍历一个,排序会+1,知道找到这个学号为止,就知道这个学号的排序了啊。
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
2013-07-15
展开全部
select count(*) form record where cishu>(select cishu form record where xuehao=112) 这是单查学号得排行,,不知你想得结果,得列表,,注意还有次数相等的情况,有并列的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询