MySQL5.6环境下如何将排名查询结果更新到scores表rangstage1字段
MySQL 5.6 排名更新解决方案
你可以直接执行以下SQL完成更新,完全兼容你的MySQL 5.6版本:
UPDATE scores s INNER JOIN ( SELECT id, @curRank := @curRank + 1 AS rank FROM scores p, (SELECT @curRank := 0) r ORDER BY tempsstage1mili ASC ) ranked ON s.id = ranked.id SET s.rangstage1 = ranked.rank;
逻辑说明
- 内层子查询沿用你已经验证过的排名计算逻辑,按
tempsstage1mili从小到大排序,生成每条记录id对应的排名值 - 通过id字段关联原scores表,将计算得到的排名直接赋值给
rangstage1字段
执行完成后执行SELECT * FROM scores即可查看更新后的结果,完全符合你给出的预期数据。
内容的提问来源于stack exchange,提问作者QuiVoleUnOeuf
相关产品推荐
相关产品推荐

