【发布时间】:2021-10-25 15:57:20
【问题描述】:
我是一名法国设计师,我遇到了一个 SQL 问题。我的 MySQL 服务器在 v5.6 中,我寻求帮助,因为我有语法问题。我想你可以给我一个解决方案。
我有一个名为“分数”的数据库:
| 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 会返回这个:
| pseudo | rank |
|---|---|
| pseudo2 | 1 |
| pseudo1 | 2 |
在这一步它是完美的,但现在,我想用结果更新我的名为“scores”的表。我必须更新的列称为“rangstage1”,列“rank”
我想得到那个:
| id | pseudo | tempsstage1mili | rangstage1 |
|---|---|---|---|
| 1 | pseudo1 | 20100 | 2 |
| 2 | pseudo2 | 16900 | 1 |
你能帮我吗?请 ?你是希望!
谢谢!
【问题讨论】:
-
你要更新什么,哪些字段有哪些值,你能提供预期的结果吗?
-
感谢您的帮助,我在问题中添加了这个。
-
您的查询
SELECT pseudo, @curRank := @curRank + 1 AS rank FROM scores p, (SELECT @curRank := 0) r ORDER BY tempsstage1mili;返回pseudo1 | 1 和伪 1 | 2. -
不是真的,查询返回:伪2 | (rank) 1 /// 伪 1 | (排名)2
-
我确实将您的两个查询合二为一,请尝试告诉我它是否有效
标签: mysql sql datatable mysql-5.6