php - MySQL 用选择的数据更新表

标签 php mysql

现在,我试图从表中的列中获取最高值,然后将其递增(+1),然后将同一列的另一个记录更新为该数字。 我正在使用 PHP 编写脚本,变量 $SQL 被发送到 MySQL。

    $SQL="
        UPDATE `router`
        SET `Line Order`= (SELECT 1 + IFNULL(MAX(`Line Order`), 0) FROM `router`)
        WHERE `RN`=?
    ";
    $stmt = $GLOBALS['mySQLConnection']->prepare($SQL);
    echo $GLOBALS['mySQLConnection']->error;

错误是:您无法在 FROM 子句中指定要更新的目标表“路由器” 我们该如何做到这一点,而不用在 php 中编写单独的查询

最佳答案

尝试这个查询:

UPDATE router AS r1
INNER JOIN (
    SELECT 1 + IFNULL(MAX(`Line Order`), 0) AS new FROM `router`) AS r2
SET `Line Order` = r2.new
WHERE `RN` = ?

关于php - MySQL 用选择的数据更新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27279431/

相关文章:

php - Laravel 4.1 查询 hasMany 关系?

php - 使用 if 语句更改 td 的颜色

mysql - 如何使用MySQL创建按时间戳按最接近价格选择ID的 View

php - 无法将mysql数据检索到单个字符串中

Mysql临时表语法

php - MySQL PHP - 选择 WHERE id = array()?

php - XAMPP 不解释 PHP 代码 + 错误

php - Laravel 和批量分配保护

php - 在linux上调用php exec函数

php - wordpress分页的自定义样式