如何使用查询结果更新数据库 table

How can I update my database table with the result of my query

我是一名法国设计师,我有一个 SQL 问题。我的 MySQL 服务器是 v5.6,我寻求帮助,因为我有语法问题。我想你可以给我一个解决方案。

我有一个名为“scores”的数据库:

id pseudo tempsstage1mili rangstage1
1 pseudo1 20100 ---
2 pseudo2 16900 ---

我问这个 MySQL :

SELECT pseudo,
 @curRank := @curRank + 1 AS rank
FROM scores p, (SELECT @curRank := 0) r
ORDER BY  tempsstage1mili;

使用此命令,MySQL return this :

pseudo rank
pseudo2 1
pseudo1 2

这一步很完美,但现在,我想用结果更新我的 table 称为“分数”。我必须更新的列名为“rangstage1”,列为“rank”

我想要那个:

id pseudo tempsstage1mili rangstage1
1 pseudo1 20100 2
2 pseudo2 16900 1

你能帮帮我吗?请 ?你是希望!

谢谢!

你可以把它变成 update:

SET @curRank = 0;

UPDATE scores
    SET rankstage1 = (@curRank := @curRank + 1)
    ORDER BY tempsstage1mili;

经过一些尝试,我认为这会有所帮助:

UPDATE scores s
INNER JOIN 
( select i.pseudo, i.rank from (SELECT pseudo,
@curRank := @curRank + 1 AS rank
FROM scores p, (SELECT @curRank := 0) r
ORDER BY  tempsstage1mili ) i ) a
ON s.pseudo = a.pseudo
SET s.rangstage1 = a.rank ;

请尝试并给我反馈,是否有效?