繁体   English   中英

如何在MySQL中更新查询中的列

[英]How to update a column within a query in mysql

我想使用聚合函数更新一列,但我不想遍历每一行。 我来自SQL Server,我们在这里做类似的事情

With CTE as (select name, price, cost,  quantity price*quantity as total)
update CTE 
   set cost = total

这样我就可以更新整个表,而无需遍历每条记录。 我如何在mysql中完成相同的任务

只做计算:

update sales 
    set cost = price * quantity
where . . . ;

但是,无需使用updateble CTE ,对SQL Server也可以使用:

我的建议是完全不存储cost列。 而是创建一个视图:

CREATE VIEW sales_with_cost 
AS 
select name, price, cost,  quantity, price*quantity as total FROM sales

您可以直接使用sales_with_cost而不是sales ,并且可以确保数据一致而不需要进行更新。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM