Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL更新行号_Mysql - Fatal编程技术网

MySQL更新行号

MySQL更新行号,mysql,Mysql,我试图将计算列值复制到表的正确列中,但在尝试第二次更新时,它无法识别计算字段 这是我的选择: select @rownum:=@rownum+1 Rank, p.* from Poule p, (SELECT @rownum:=0) r WHERE p.Activity LIKE 'BallgameOne' order by TotalPoints desc 这将生成一个表,其中包含行号(rank)和Poule表的所有列。Poule表中的其中一列称为Position 我想将列R

我试图将计算列值复制到表的正确列中,但在尝试第二次更新时,它无法识别计算字段

这是我的选择:

select @rownum:=@rownum+1 Rank, p.* 
from Poule p, 
    (SELECT @rownum:=0) r 
WHERE p.Activity LIKE 'BallgameOne' 
order by TotalPoints desc
这将生成一个表,其中包含行号(
rank
)和Poule表的所有列。
Poule
表中的其中一列称为
Position

我想将列
Rank
的值复制到列
Position
中。因为这个职位在一次更新中丢失了。因此,我想根据返回的select进行更新


可以这样做吗?

使用返回列组的查询连接表

UPDATE Poule AS p1
JOIN (select @rownum:=@rownum+1 Rank, p.id
        from Poule p, 
            (SELECT @rownum:=0) r 
        WHERE p.Activity LIKE 'BallgameOne' 
        order by TotalPoints desc) AS p2
ON p1.id = p2.id
SET p1.Position = p2.Rank

Poule
表是否有主键?是的,它被称为“Id”