对列进行排序并将结果设置为MySql中的另一列

时间:2013-03-23 11:58:19

标签: mysql

我有一个关于查询的问题。假设我有一个像这样的表结构。

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

当我按Point列(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

有可能这样做吗?如果是,怎么样?

提前致谢...

1 个答案:

答案 0 :(得分:1)

您可以使用相当神秘的语法执行此操作:

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

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