我需要一些想法
START TRANSACTION;
UPDATE tasks
SET priority = 2
WHERE id = 1;
UPDATE tasks
SET priority = 1
WHERE id = 2;
COMMIT;
当任务 1 具有优先级 1 和任务 2 - 2 时。
我在MySQL中有一个解决方案:
UPDATE tasks a
INNER JOIN tasks b on a.id <> b.id
SET a.priority = b.priority
WHERE a.id IN (1,2)
AND b.id IN (1,2)
我希望你能把它转换成ActiveRecord。