我想使用聚合函数更新列,但我不想遍历每一行。我是从SQL Server来的,我们在这里做的事情如下
With CTE as (select name, price, cost, quantity price*quantity as total)
update CTE
set cost = total有了这个,我就可以更新整个表,而不需要遍历每一条记录。如何在mysql中完成相同的任务?
发布于 2018-10-12 12:19:46
只需计算:
update sales
set cost = price * quantity
where . . . ;但是,对于SQL Server也是如此,不需要使用可更新的CTE:
发布于 2018-10-12 13:17:35
我的建议是根本不存储cost列。相反,创建一个视图:
CREATE VIEW sales_with_cost
AS
select name, price, cost, quantity, price*quantity as total FROM sales您可以直接使用sales_with_cost而不是sales,并且可以确保您的数据是一致的,而不需要进行更新。
https://stackoverflow.com/questions/52779390
复制相似问题