Bạn không thể sử dụng thứ tự theo và giới hạn trong câu lệnh cập nhật trong trường hợp có nhiều bảng.
Trích dẫn từ Tài liệu MySQL:
UPDATE user u
INNER JOIN
(
SELECT
*,
(@i := (@i + 1)) AS row_number
FROM user u
CROSS JOIN (SELECT @i := 0) r
WHERE user_active=1
ORDER BY user_planets DESC
)AS t
ON u.Primary_key = t.primary_key
SET u.user_rank_planets = t.row_number.
Lưu ý: Thay thế u.Primary_key
và t.primary_key
bằng khóa chính của user
bảng.
Đọc một vài đoạn đầu tiên http://dev.mysql.com/doc /refman/5.7/en/update.html