MySQL-在同一个表中增加字段,存储在同一个表中
我有一张这样的桌子:MySQL-在同一个表中增加字段,存储在同一个表中,mysql,sql,Mysql,Sql,我有一张这样的桌子: Quote Super Factor 29 63 [83.79] 38 61 [81.13] 79 65 [86.45] 47 40 [80] 81 25 [50] 82 35
Quote Super Factor
29 63 [83.79]
38 61 [81.13]
79 65 [86.45]
47 40 [80]
81 25 [50]
82 35 [70]
我想把‘Super’列乘以1.33,如果‘Quote’是29,38,79。如果字段'Quote'为47、81、82,则将'Super'乘以2
引号是“BigInt(10)”,“Super”和“Factor”都有“Double”类型。该表的名称为“Quote_IDX”
注意:“[]”中的数字是完成此计算后我应该得到的结果。正如你可能知道的那样,我对MySQL还相当陌生,所以我需要一些帮助
提前感谢。您可以使用以下语句。
选择将向您显示数据结果:
select quote, super,
case when quote in (29, 38, 79)
then super * 1.33
when quote in (47, 81, 82)
then super * 2.0
else 0
end factor
from Quote_IDX
看。然后,如果您想更新系数
列的更新
:
update Quote_IDX
set factor = (case when quote in (29, 38, 79)
then super * 1.33
when quote in (47, 81, 82)
then super * 2.0
else 0 end)
请参见您试图解决的总体问题是什么?把几个硬编码的数字与另一个硬编码的数字任意相乘似乎有些奇怪。实际上,我被告知要更改“超级”数字,但并非所有这些数字都会更改,我希望能够保持这些数字不变。我添加了“Factor”字段来存储新的数字。但是表实际存储了什么?它有什么作用?什么是商业领域?在这一点上,我想我只是好奇。它在一个我们做测试的私人网站上。该表存储了他们的等级。我所做的就是根据学生参加的测试,将他们的分数乘以给定的因子。为什么?因为客户机想要.1表示“SQL FIDLE”。我刚刚使用了您解决方案的后半部分来“修复”我的数据。工作得很好!