如何在 MySQL 中插入一行,动态使用表中与 SELECT 查询匹配的其他值?

问题描述 投票:0回答:1

假设你有一张桌子:

+-------+-------+
| Item  | Value |
+-------+-------+
| Tax   | 1.08  |
| Water | 6     |
| Bread | 2     |
+-------+-------+

并且您想插入这样的行:

+-------+-------+
| Item  | Value |
+-------+-------+
| Paper | 5*Tax |
+-------+-------+

“值”列在每次检索时动态生成,因此它始终准确地反映对“税”所做的任何更改。

示例:

  1. SELECT * FROM table WHERE Item = "Paper"
    显示5.40
  2. UPDATE table SET Value = 1.11 WHERE Item = "Tax"
  3. SELECT * FROM table WHERE Item = "Paper"
    显示 5.55

同一个表中是否可以有这样的动态值?或者这是我需要使用视图的东西?

编辑:本质上,我希望它像电子表格一样发挥作用。如果是 Excel,Paper 的值就是 =B2*5

mysql dynamic
1个回答
0
投票

假设你的桌子的名字是

product
。您可以加入同一张表并进行如下查询:

SELECT  t1.name, t1.value * t2.value AS value_with_tax
FROM product t1
JOIN product t2 ON t2.name = 'tax'
WHERE t1.name <> 'tax';

演示:SQLFiddle

© www.soinside.com 2019 - 2024. All rights reserved.