我正在尝试将以下查询合并为一个,但无论我尝试过什么似乎都不正常。它的想法是将已排序的列表插入到具有自动递增字段的临时表中,然后获取新列表,然后使用更新的值更新原始表。
INSERT INTO `TempRank` (`id`, `power`)
SELECT `Rankable`.`id`, `Rankable`.`SA` AS `power`
FROM `Rankable`
INNER JOIN `Accounts` ON `Accounts`.`id` = `Rankable`.`id`
WHERE `Accounts`.`active` = '1'
ORDER BY `power` DESC;
UPDATE `Rankable`, `TempRank`
SET `Rankable`.`id` = `TempRank`.`id`,
`Rankable`.`Rank` = `TempRank`.`Rank`
WHERE `Rankable`.`id` = `TempRank`.`id`
非常感谢任何信息,我会在等待您的答案时继续努力,并将根据我的发现更新您。谢谢你的帮助!
答案 0 :(得分:0)
UPDATE rankable r INNER JOIN temprank t ON r.id=t.id SET r.rank=t.rank