Mysql 错误显示 #1221 - UPDATE 和 ORDER BY 的使用不正确

Mysql error shows #1221 - Incorrect usage of UPDATE and ORDER BY

我尝试在以下查询中使用 order by 但错误显示 #1221 - UPDATE 和 ORDER BY 的使用不正确

UPDATE products 
JOIN (SELECT @rank := 0 ) r 
SET `sort_order`=@rank:=@rank+1 
WHERE `prd_status`=1 AND `prd_popular`=1 AND `prd_booked`=0 AND `prd_sold`=1 AND `prd_rd_mini`=0
ORDER BY `prd_price`DESC

多table更新中没有ORDER BY 参见:https://mariadb.com/kb/en/update/

像这样使用查询:

SELECT @rank:=0;  
UPDATE products p
SET p.`sort_order`=@rank:=@rank+1 
WHERE p.`prd_status`=1 ;AND p.`prd_popular`=1 AND p.`prd_booked`=0 AND p.`prd_sold`=1 AND p.`prd_rd_mini`=0
ORDER BY p.`prd_price` DESC;