Mysql
 sql >> Base de données >  >> RDS >> Mysql

#1221 - Utilisation incorrecte de UPDATE et ORDER BY

Vous ne pouvez pas utiliser l'ordre de et la limite dans l'instruction de mise à jour dans le cas de plusieurs tables.

Citation de la documentation 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.

Remarque : Remplacez u.Primary_key et t.primary_key par la clé primaire de user tableau.

Lire les premiers paragraphes http://dev.mysql.com/doc /refman/5.7/en/update.html