0

我对查询有疑问。假设我有一个这样的表结构。

TABLE_A
Id - Standing - Point
1      null       8
2      null       9
3      null       12
4      null       11
5      null       4

当我按点列(SELECT * FROM TABLE_A ORDER BY Point DESC)对该表进行排序时,我想根据排序结果更新要更新的站立列。在对这些值进行排序并将其设置为 Standing 列之后,我想要的结果是:

TABLE_A
Id - Standing - Point
1      4        8
2      3        9
3      1        12
4      2        11
5      5        4

是否有可能做到这一点?如果是,如何?

提前致谢...

4

1 回答 1

1

您可以使用相当晦涩的语法来做到这一点:

update table_A
    set standing = (select cnt
                    from (select count(*) as cnt
                          from table_a a2
                          where a2.point >= table_A.point
                         )
                   )

嵌套选择的使用只是 MySQL 所需的语法约定。

于 2013-03-23T14:58:26.660 回答