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

ada*_*000 1 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
}
Run Code Online (Sandbox Code Playgroud)

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

Gor*_*off 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;
Run Code Online (Sandbox Code Playgroud)

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

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