如何在不违反唯一约束的情况下交换 Yii2 中两行的值


How to swap values of two rows in Yii2 without violating unique constraint?

我需要一些想法

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