如何在MYSQL中创建一个列,该列自动对同一行中其他列的值进行求和

时间:2014-05-06 12:05:40

标签: mysql sql

是否有人可以告诉我是否可以在MYSQL中的表中创建一个列,该列自动为给定数量的列执行SUM函数。

作为Microsoft Excel中的比较示例,可以让一个单元格为给定范围的单元格执行SUM函数并自动更新i.e. (=SUM E4:E55)

是否可以在MYSQL中创建一个实现相同功能的列?

进一步阐述 -

我有许多与我们产品的不同尺寸数量有关的列,例如quantity_size_*,并且想要一列能够汇总数量列值的列,并在任何值更改时自动更新。

任何建议都会很棒。谢谢

3 个答案:

答案 0 :(得分:2)

通常,您会在即时选择查询中执行此操作,并且不会存储这些计算。

select some_column,
       col1 * col2 as some_calculation_result
from your_table

但如果你有充分的理由不这样做,那么你可以使用触发器来计算这些数据。

您需要更新触发器来捕获数据中的更改,并使用插入触发器来计算插入时的数据。

插入触发器的示例如下所示

delimiter |
CREATE TRIGGER sum_trigger AFTER INSERT ON your_table 
FOR EACH ROW BEGIN
    SET NEW.sum_column = NEW.column1 * NEW.column2;          
END
|
delimiter ;

答案 1 :(得分:0)

我认为你必须用触发器做这件事。列本身只是存储数据,它不能以编程方式执行。

答案 2 :(得分:-1)

Mysql还有你可以在select查询中使用的SUM()函数。 因此,最好的选择是使用SELECT SUM()查询 或者你甚至可以为此创建一个VIEW,但触发器 不建议使用,因为它们可能会变得很麻烦。