Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL中带有加法运算符的IF/ELSE语句_Php_Mysql_Cakephp - Fatal编程技术网

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

Php MySQL中带有加法运算符的IF/ELSE语句,php,mysql,cakephp,Php,Mysql,Cakephp,我一直试图理解在MySQL中这样做,但即使在阅读了一些教程和手册之后,我也不得不承认失败。任何帮助都将不胜感激 我有三个十进制类型的字段(用于货币)。这些是“基本价格”、“折扣价格”和“附加价格” 我正在尝试创建完成以下伪代码所需的MYSQL: if (discounted_price is not null or 0) { total_price = discounted_price + extras_price } else { total_price = base_pric

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

我有三个十进制类型的字段(用于货币)。这些是“基本价格”、“折扣价格”和“附加价格”

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

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

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

这就是您想要的吗

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;
select(折扣价格不为空且折扣价格为0时的情况)
然后是折扣价+附加价
其他基本价格+附加价格
结束)作为总价
从t;
顺便说一下,第一个条件在SQL中是冗余的。您可以这样写:

select ((case when discounted_price <> 0 then discounted_price else base_price end) +  
        extras_price) as total_price
from t;
select((打折价格为0,然后打折价格为其他基本价格结束时的情况)+
附加价格)作为总价
从t;

这就是你要找的吗

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;
select(折扣价格不为空且折扣价格为0时的情况)
然后是折扣价+附加价
其他基本价格+附加价格
结束)作为总价
从t;
顺便说一下,第一个条件在SQL中是冗余的。您可以这样写:

select ((case when discounted_price <> 0 then discounted_price else base_price end) +  
        extras_price) as total_price
from t;
select((打折价格为0,然后打折价格为其他基本价格结束时的情况)+
附加价格)作为总价
从t;

我想您只需要
选择折扣价、附加价(折扣价不为空且折扣价!=0,折扣价+附加价、基价+附加价)作为总价
。在我的脑海里,这应该是可行的。我想你只是想
选择折扣价格,附加价格(如果折扣价格不为空,并且折扣价格!=0,折扣价格+附加价格,基本价格+附加价格)作为总价格
。我想这应该行得通