带有加法运算符的MySQL中的IF / ELSE语句

时间:2013-12-19 02:53:46

标签: php mysql cakephp

我一直试图理解在MySQL中这样做,但即使在阅读了几个教程和手册之后也不得不承认失败。任何帮助将不胜感激。

我有三个十进制类型的字段(用于货币)。这些是'base_price','discounted_price'和'extras_price'。

我正在尝试创建完成以下伪代码所需的MYSQL:

if (discounted_price is not null or 0) {
    total_price = discounted_price + extras_price
} else {
    total_price = base_price + extras_price
}

值得注意的是,这将用于为CakePHP 2创建虚拟字段。*感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:6)

这是你在找什么?

select (case when discounted_price is not null and discounted_price <> 0
             then discounted_price + extras_price
             else base_price + extras_price
        end) as total_price
from t;

顺便说一句,第一个条件在SQL中是多余的。你可以这样写:

select ((case when discounted_price <> 0 then discounted_price else base_price end) +  
        extras_price) as total_price
from t;