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

时间:2016-03-02 09:57:12

标签: php database activerecord transactions yii2

我需要一些想法

START TRANSACTION;
    UPDATE tasks 
    SET priority = 2 
    WHERE id = 1;

    UPDATE tasks 
    SET priority = 1 
    WHERE id = 2;
COMMIT;

当task1具有优先级1和任务2 - 2时。

1 个答案:

答案 0 :(得分:0)

我在 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