Mysql 如果语句为true,则将列相乘

Mysql 如果语句为true,则将列相乘,mysql,sql,if-statement,Mysql,Sql,If Statement,我有一列美元和欧元货币,我想将这些货币的价值乘以相应的智利比索汇率。到目前为止,我知道如何提取美元和欧元的合同,但我不知道如何将每一个价值乘以其自身的汇率。我想可能是这样的: SELECT contracts.value, contracts.currency FROM contracts WHERE contracts.currency='USD' then contracts.value=contracts.value*500 OR contracts.currency='EUR

我有一列美元和欧元货币,我想将这些货币的价值乘以相应的智利比索汇率。到目前为止,我知道如何提取美元和欧元的合同,但我不知道如何将每一个价值乘以其自身的汇率。我想可能是这样的:

SELECT contracts.value, contracts.currency 
FROM contracts
WHERE contracts.currency='USD' then contracts.value=contracts.value*500  
   OR contracts.currency='EUR' then contracts.value=contracts.value*750

谢谢你的帮助

您可以在select子句中执行此操作:

SELECT IF(contracts.currency='USD', contracts.value*500, contracts.value*750) as amount
FROM contracts

文档:

您可以在select子句中执行此操作:

SELECT IF(contracts.currency='USD', contracts.value*500, contracts.value*750) as amount
FROM contracts

文档:

您可以使用
案例
语句通过
合同过滤您的
合同。价值
。货币

 SELECT contracts.currency 
      , CASE WHEN contracts.currency = 'USD' THEN contracts.value*500 
             WHEN contracts.currency = 'EUR' THEN contracts.value*750
             ELSE contracts.value
        END
 FROM contracts

您可以使用
CASE
语句,通过
contracts.currency
筛选您的
合同。值

 SELECT contracts.currency 
      , CASE WHEN contracts.currency = 'USD' THEN contracts.value*500 
             WHEN contracts.currency = 'EUR' THEN contracts.value*750
             ELSE contracts.value
        END
 FROM contracts

如果您要使用两种以上的货币,可以使用查找表

currency | factor
-----------------
USD      | 500
EUR      | 750
然后像这样查询:

SELECT c.contract_id, c.contract, c.value, c.currency, 
    cc.factor, c.value * cc.factor    AS calculatedValue
FROM contract c
    INNER JOIN currency_conversion cc ON c.currency = cc.currency

此处演示:

如果您要使用两种以上的货币,可以使用查找表

currency | factor
-----------------
USD      | 500
EUR      | 750
然后像这样查询:

SELECT c.contract_id, c.contract, c.value, c.currency, 
    cc.factor, c.value * cc.factor    AS calculatedValue
FROM contract c
    INNER JOIN currency_conversion cc ON c.currency = cc.currency

此处演示:

有两种以上的货币,我该怎么办?如果有两种以上,请使用类似于诺杜利西斯回答的案例陈述有两种以上的货币,我该怎么办?如果有两种以上,请使用类似于诺杜利西斯回答的案例陈述下面的答案是有效的,但我建议,如果可能的话,不这样做,而是制作一个汇率表并进行联接。更新数据库比更新代码更容易。考虑到您的和这一点,我建议您在开始这样的工作之前先做一些基本的SQL学习,这样您就不会在每一步都提出新的问题。这个网站不是一个指导教程。我可能没有你知道的那么多,但我认为这些是有效的问题,很抱歉打扰你。下面的答案是有效的,但我建议,如果可能的话,不要这样做,而是制作一个汇率表和加入。更新数据库比更新代码更容易。考虑到您的和这一点,我建议您在开始这样的工作之前先做一些基本的SQL学习,这样您就不会在每一步都提出新的问题。这个网站不是一个指导教程。我可能没有你知道的那么多,但我认为这些都是有效的问题,很抱歉打扰你。