3

我在 MySQL 数据库中有几列我想添加并存储在另一列中:

column1     column2     column3    subtotal
10          10          10         30

有没有办法做到这一点?

4

4 回答 4

4
update yourtable set subtotal = col1 + col2 + col3
于 2012-06-28T20:23:39.757 回答
1

如果您只是更新小计,则必须保持其值 - 即每次更新其他列之一时,您的代码也必须记住更新小计。

有两种方法可以解决这个问题:

  1. 创建一个在行更新时触发的触发器。此选项需要数据库“功夫”,并且对于查看触发器存在的表的其他人来说并不是立即显而易见的
  2. 创建一个VIEW进行计算的

我认为选项 2 是最好的方法。

下面介绍如何编写视图。

create view mytable_totalled as
select col1, col2, col3,  col1 + col2 + col3 as subtotal
from mytable

创建后,视图可以像表格一样使用(有一些注意事项),但您当然可以对其进行任何类型的选择。新列在选中时即时计算

于 2012-06-28T20:38:32.747 回答
0

好吧,如果这只是一次性交易,您可以像这样执行更新查询:

UPDATE MyTable set subtotal = (column1 + column2 + column3)

如果您希望在插入时计算它,您可以有一个计算列。

我个人会等到你需要它来计算它,这样可以很容易地从你的数据中得出的信息不会让你的数据库膨胀。

于 2012-06-28T20:28:18.847 回答
0

这个怎么样?

UPDATE tableName SET subtotal = (column1 + column2 + column3)

更新 1

如果您真的不需要表中的小计列,只需使用查询作为

SELECT *, (column1 + column2 + column3) as subtotal
FROM tableName

演示

于 2012-06-28T20:40:14.943 回答