php - mysqli查询以更新学生的排名列
问题描述
我有学生数据库的这个 sql 表。
PHP 脚本用于计票。我有这个查询用于对学生进行排名。此 SELECT 查询完美运行,但我想根据否决票更新该列。
SELECT id, first, vote, @curRank := @curRank + 1 AS rank
FROM student_table p, (
SELECT @curRank := 0
) q
ORDER BY vote DESC
更新:
这对我有用的家伙:)
mysqli_query($conn, 'UPDATE student_table SET rank= @r:=0 ORDER BY vote DESC');
mysqli_query($conn, 'UPDATE student_table SET rank= @r:=(@r+1) ORDER BY vote DESC');
解决方案
SET @r=0;
UPDATE student_table SET rank= @r:= (@r+1) ORDER BY vote DESC;
推荐阅读
- excel - 基于条件的 SUBSTITUTE 函数用法
- c# - 为什么基于堆栈的值类型字段保证为零?
- javascript - JS打开新窗口,N秒后关闭新窗口
- c# - VB.NET 中是否有等效的“动态”类型或其他方式来实现相同的行为?
- elasticsearch - 我可以根据来自另一个查询的数据将计算布尔列添加到 Elasticsearch Kibana 查询吗?
- office-js - 使用 office js 将自定义图标添加到收件箱摘要
- windows - 如何修复:“Git”不是 CMD 的识别命令,但 git comman 在 GIT CMD CLI 中有效?
- optimization - 给定一些约束,最小化两个列表元素的峰值差异
- javascript - 用数组javascript查找最长的字谜
- r - 从 CSV 文件在 R 中创建 SQLite DB:为什么 DB 文件为 0KB 且不包含表?