如何使用查询结果更新数据库 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 ;
请尝试并给我反馈,是否有效?
我是一名法国设计师,我有一个 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 ;
请尝试并给我反馈,是否有效?