Php mysqli查询以更新外出学生的排名列
我有学生数据库的sql表。Php mysqli查询以更新外出学生的排名列,php,sql,mysqli,Php,Sql,Mysqli,我有学生数据库的sql表。 PHP脚本用于计票我使用此查询对学生进行排名此选择查询非常有效,但我想根据投票结果更新列 SELECT id, first, vote, @curRank := @curRank + 1 AS rank FROM student_table p, ( SELECT @curRank := 0 ) q ORDER BY vote DESC 更新: 这对我来说很有用:) Sql查询: $q = "SELECT * FROM tablename ORDER BY vot
PHP脚本用于计票
我使用此查询对学生进行排名
此选择查询非常有效,但我想根据投票结果更新列
SELECT id, first, vote, @curRank := @curRank + 1 AS rank
FROM student_table p, (
SELECT @curRank := 0
) q
ORDER BY vote DESC
更新:这对我来说很有用:) Sql查询:
$q = "SELECT * FROM tablename ORDER BY vote DESC";
check condition if(q->num_rows > 0){
$rank = 1;
then while loop($row = $q->fetch_assoc()) {
$id = $row['id'];
//update rank column
$q1 = "UPDATE tablename SET rank='".$rank"' WHERE id='".$id."' "
$rank++;
}
}//if close
下面是一个在MySQL中不使用变量的备用更新查询
update test
inner join (select id,name,vote,(select count(id) + 1
from test where id != t.id and vote > t.vote) as 'rank'
from test t) derived_test
ON test.id = derived_test.id
set test.rank = derived_test.rank;
您可以查看此信息以了解等级是如何分配的 这不起作用,我只需要一个问题中的sql查询来更新列。上面的查询出现错误,所以我使用这种方式。。。更新学生_表集合排名=@curRank:=@curRank+1投票顺序描述;此查询没有错误,但列未更新。值仍然为零。我创建了与您相同的表结构,并尝试了……。您遇到了什么错误?非常棒它在phpmyadmin中工作,但在php mysqli_queryHappy编码中仍然不工作:)其他方法始终帮助:)@MarkPatel如果这对您有所帮助,你能考虑投票吗?
SET @r=0;
UPDATE student_table SET rank= @r:= (@r+1) ORDER BY vote DESC;
update test
inner join (select id,name,vote,(select count(id) + 1
from test where id != t.id and vote > t.vote) as 'rank'
from test t) derived_test
ON test.id = derived_test.id
set test.rank = derived_test.rank;