从同一个表mysql中的select值更新相同的表

时间:2018-03-16 07:13:02

标签: mysql

我正在尝试更新同一个表中相同列的表列。 这是代码(更新)

     public function UpdateStockIn($id, $subUnitValue) {
    $query = "UPDATE BRAND_LIST SET CURRENT_STOCK_BOTTLE = (SELECT CURRENT_STOCK_BOTTLE FROM BRAND_LIST WHERE ID = ?) + '.$subUnitValue.' WHERE ID = ? ";
    $success = 0;
    try {
        $stmt = $this->conn->prepare($query);
        $stmt->bindParam(1, $id);
        $stmt->bindParam(2, $id);

        $stmt->execute();
        $success = 1;
    } catch (PDOException $ex) {
        echo $ex->getMessage();
    }
    return $success;
}

它显示这样的错误       您无法在FROM子句

中为更新指定目标表'BRAND_LIST'

2 个答案:

答案 0 :(得分:3)

尝试运行这2个sql,第一个将存储一个值到mysql本地变量然后用于第二个sql。

 SELECT @old_subUnitValue := GROUP_CONCAT(table1.CURRENT_STOCK_BOTTLE) FROM BRAND_LIST AS table1 WHERE table1.ID=2;

 UPDATE BRAND_LIST AS table2 SET table2.CURRENT_STOCK_BOTTLE =  @old_subUnitValue + '.$subUnitValue.' WHERE table2.ID=2; 

答案 1 :(得分:0)

使用以下查询

outp[k] = arr.copy()