带有计算字段的MySQL临时列

时间:2014-03-21 19:14:40

标签: mysql sql sum calculated-columns

我有一个MySQL表:

enter image description here

现在我想在查询中做一个小计算。 我希望有一个临时列,你可以看到(product_price + 4)。

所以当有一个价格为16(product_price)的产品时。然后应该有一个临时专栏,例如product_newprice = 20

4 个答案:

答案 0 :(得分:1)

SELECT product_id,product_name,product_price,(product_price +4) product_newprice  FROM table

答案 1 :(得分:1)

查询看起来像这样:

SELECT p.product_id
     , p.product_name
     , p.product_price
     , p.product_price + 4.00 AS product_newprice
  FROM mytable p

答案 2 :(得分:1)

select product_id, product_name, product_price, product_price + 4 as product_price2 from YourTable.

答案 3 :(得分:1)

其他人已经展示了如何使用单独的SELECT语句来计算调整后的值,但这意味着您必须在要返回该值的每个查询中对此进行编码。

如果您想使列定义成为表定义的一部分,那么任何查询将获得调整后的值,您可以选择以下选项:

  • 创建一个VIEW,其中包含product_price+4的新列,并且只查询VIEW。

  • 为调整后的价格添加另一个真实列,并使用triggers更新,以计算INSERT和UPDATE的新值。

  • 使用MariaDB,它是MySQL的一个分支,支持virtual columns,可以动态计算为其他列的表达式。