一般而言,我对SQL不太熟悉,我想知道如何使用相同的变量来组合这两个单独的更新字符串:

$queryA = 'UPDATE table SET redirectsToId  ='.$redirectId.' WHERE id='.$id;
$queryB = 'UPDATE table SET redirectFromId ='.$id.'         WHERE id='.$redirectId;


预先感谢您的任何建议。

编辑:一般来说,最有效的方法是什么?

最佳答案

您真的不需要。在大多数数据库中,您可以将两个语句包装在一个事务中,以便它们“同时”生效。

但是,您也可以执行以下操作:

UPDATE table
    SET redirectsToId  = (CASE WHEN id = $id THEN $redirectId ELSE redirectsToId END),
        redirectsFromId = (CASE WHEN id = $id THEN redirectsFromId ELSE $id)
    WHERE id IN ($id, $redirectId);

关于php - 如何使用mysqli和PHP用代表另一行ID的变量更新两列的不同行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42329119/

10-09 03:20