为了账号安全,请及时绑定邮箱和手机立即绑定

从另一列计算的列?

从另一列计算的列?

桃花长相依 2019-07-30 16:42:08
从另一列计算的列?鉴于下表:id | value--------------1     62     70有没有办法添加一个根据同一个表中的另一列自动计算的列?像VIEW,但同一个表的一部分。举个例子,calculated就是一半value。Calculated应该在value更改时自动更新,就像VIEW一样。结果将是:id | value | calculated-----------------------1     6       32     70      35
查看完整描述

3 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

Generated Column是MySql版本的一个很好的方法,它是5.7.6及更高版本。

生成列有两种:

  • 虚拟(默认) - 将从表中读取记录时动态计算列

  • 存储 - 将在表中写入/更新新记录时计算列

两种类型都可以具有NOT NULL限制,但只有存储的生成列可以是索引的一部分。

对于当前情况,我们将使用存储生成的列。为了实现我已经考虑过计算所需的两个值都存在于表中

CREATE TABLE order_details (price DOUBLE, quantity INT, amount DOUBLE AS (price * quantity));
INSERT INTO order_details (price, quantity) VALUES(100,1),(300,4),(60,8);

金额将自动弹出表格,您可以直接访问它,另请注意,无论何时更新任何列,金额也会更新。


查看完整回答
反对 回复 2019-07-30
?
慕娘9325324

TA贡献1783条经验 获得超4个赞

如果是选择,您可以这样做:

SELECT id, value, (value/2) AS calculated FROM mytable

否则,您还可以先更改表以添加缺少的列,然后执行UPDATE查询以计算新列的值,如下所示:

UPDATE mytable SET calculated = value/2;

如果它必须是自动的,并且您的MySQL版本允许它,您可以尝试使用触发器


查看完整回答
反对 回复 2019-07-30
  • 3 回答
  • 0 关注
  • 535 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信