简单的问题,我确定一个简单的答案。我搜索过,无法找到解决方案。基本上我的代码在Phpmyadmin中工作,但它不适用于PHP mysql查询脚本。代码将我的“rank”行按最大数字排序,然后用数字更新“position”行,从“rank”列中的最大数字开始,然后将“position”行增加为“等级“行值变小。
SET @r=0;
UPDATE Data SET position= @r:= (@r+1) ORDER BY rank DESC;
SET @r=0;
SELECT *, @r:= (@r+1) as position FROM Data ORDER BY rank DESC;
提前致谢!!
答案 0 :(得分:3)
您在这里有多个查询。尝试使用mysqli_multi_query:
$result = mysqli_multi_query($con,"SET @r=0;
UPDATE Data SET position= @r:= (@r+1) ORDER BY rank DESC;
SET @r=0; SELECT *, @r:= (@r+1) as position
FROM Data ORDER BY rank DESC;") ;