存储在另一列中的几个MySQL列的总和?

时间:2012-06-28 20:22:13

标签: mysql

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

column1     column2     column3    subtotal
10          10          10         30

有没有办法实现这个目标?

4 个答案:

答案 0 :(得分:4)

update yourtable set subtotal = col1 + col2 + col3

答案 1 :(得分:1)

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

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

  1. 创建在更新行时触发的触发器。此选项需要数据库“kung fu”,并且对于查看触发器存在的表的任何其他人来说并不是显而易见的
  2. 创建执行计算的VIEW
  3. 我认为选项2是最好的方法。

    以下是您对视图进行编码的方式。

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

    创建后,视图可以像桌子一样使用(有一些注意事项),但你可以选择对它进行任何选择。选择时,新列将立即计算

答案 2 :(得分:0)

如果这只是一次性交易,你可以像这样做一个更新查询:

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

如果要在插入时计算它,可以使用计算列。

我个人只是等到你需要它来计算它,以便可以从你的数据中轻易获得的信息不会使你的数据库膨胀。

答案 3 :(得分:0)

这个怎么样?

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

更新1

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

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

Demo