原来的sql语句:update art_product as a set a.total_price = (select price*product_num from art_product b where a.id=b.id)
mysql错误原因:执行SQL语句时出现这个错误。原因是在更新这个表和数据时又查询了它,而查询的数据又做了更新的条件。
示例:更新商品表的总价格,商品单价*商品数量,这里涉及一个表的同事查询与修改。
解决思路:这时可以把要更新的几列数据查询出来做为一个第三方表,然后筛选更新,如下所示
update art_product as a set a.total_price=(select t.total_price from (select price*product_num as total_price,id from art_product ) t where a.id=t.id)