Mysql
 sql >> база данни >  >> RDS >> Mysql

#1221 - Неправилно използване на UPDATE и ORDER BY

Не можете да използвате order by и limit в изявлението за актуализиране в случай на множество таблици.

Цитат от MySQL Documentation:

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.

Забележка: Заменете u.Primary_key и t.primary_key от първичния ключ на user таблица.

Прочетете първите няколко абзаца http://dev.mysql.com/doc /refman/5.7/bg/update.html



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да получите броя на засегнатите редове, докато изпълнявате MySQL заявка от bash?

  2. Как да подобрим тази MySQL заявка с помощта на присъединяване?

  3. Как да съкратим таблица с помощта на Doctrine?

  4. Таблица само за четене в mysql

  5. Изберете последния запис в таблицата (поле за дата и час)