sql >> Databáze >  >> RDS >> Mysql

#1221 - Nesprávné použití UPDATE a ORDER BY

V případě více tabulek nemůžete v příkazu update použít příkaz order by a limit.

Citace z dokumentace 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.

Poznámka: Nahraďte u.Primary_key a t.primary_key pomocí primárního klíče user tabulka.

Přečtěte si prvních několik odstavců http://dev.mysql.com/doc /refman/5.7/en/update.html



  1. Kritéria hibernace pro data

  2. Jak připojit lokálně hostovanou databázi MySQL s kontejnerem dockeru

  3. PostgreSQL, kde je vše v poli

  4. Základy tabulkových výrazů, 3. část – Odvozené tabulky, úvahy o optimalizaci