MYSQL 如果强行实现,查询逻辑会变的很复杂,不符合实际
成都创新互联是一家专业提供凤山企业网站建设,专注与网站设计、网站制作、H5高端网站建设、小程序制作等业务。10年已为凤山众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。
计算最好是在PHP里面
$data ..//比如查询结果返回给DATA 的二维数组
foreach($data as $vo){
$math[$vo['name']] = $vo['数学'];
$langue[$vo['name']] = $vo['语文'];
$englist[$vo['name']] = $vo['英语'];
}
arsort($math);
arsort($langue);
arsort($englist);
$i = 1;
foreach($math as $key=$vo){
$res[$key]['数学'] = $i;
}
$i = 1;
foreach($langue as $key=$vo){
$res[$key]['语文'] = $i;
}
$i = 1;
foreach($englistas $key=$vo){
$res[$key]['英语'] = $i;
}
select id,integral,addtime from cos_member_vip order by integral desc,addtime asc
--如果需要生成以积分为最高优先,其次以时间为从高到低为条件生成个排名字段,可用
--ROW_NUMBER() OVER ()函数
工具/材料:Management Studio。
1、首先在桌面上,点击“Management Studio”图标。
2、之后在该界面中,点击左上角“新建查询”选项。
3、接着在该界面中,输入查询学生平均成绩及其名次的sql语句“select name,AVG(grade),no from test2 group by name,no”。
4、然后在该界面中,点击左上方“执行”按钮。
5、最后在该界面中,显示学生平均成绩及其名次成功。
select count(1) as 排名 from 表名 where 分数字段 = (select 分数字段 from 表名 where 姓名字段 = '用户名')
SELECT * FROM table_name ORDER BY `score` DESC
就是从表中按score从高到低排序后取出的结果