php - 如何使用 mysqli 和 PHP 使用代表另一行 id 的变量更新两列的不同行?

标签 php mysql sql database mysqli

我对 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/

相关文章:

sql - Oracle - 重写此查询以不使用子选择的方法?

php - 在 PHP 中对数组进行排序与​​从 SQL 中获取数据

php - 将二叉树编码为Json

php - PDO异常 : Can't open lib 'ODBC Driver 13 for SQL Server'

php - 如何在 Laravel 中使用 eloquent 或 DB Facade 从单一表单插入多个表

mysql - 在 Spring 中保存后获取 AutoIncrement 值

sql - 在 GROUP BY 中聚合 Postgres 中的 hstore

php - 上传数据并从两个表格中选择它们并显示在同一个 HTML 表格中

php - 发送到数据库功能未执行

php - 查询数据库时出错-PHP,SQL和PHPMyAdmin