Php SQL中的条件表达式
我正在使用MYSQL和PHP。我有一张桌子叫item。它的两个属性是价格和折扣价格。我有如下选择声明:Php SQL中的条件表达式,php,sql,mysql,Php,Sql,Mysql,我正在使用MYSQL和PHP。我有一张桌子叫item。它的两个属性是价格和折扣价格。我有如下选择声明: $sql = 'SELECT C.cart_id,I.item_id,C.quantity, I.discounted_price,I.price FROM cart C, item I WHERE I.item_id = C.item_id'; 我想修改这个sql语句并包含一个条件表达式,这样:如果折扣价格为0,则它选择价格,否则选择折扣价格。 条件表达式可以在SQL语句中使用吗? 谢谢
$sql =
'SELECT C.cart_id,I.item_id,C.quantity, I.discounted_price,I.price
FROM cart C, item I
WHERE I.item_id = C.item_id';
我想修改这个sql语句并包含一个条件表达式,这样:如果折扣价格为0,则它选择价格,否则选择折扣价格。
条件表达式可以在SQL语句中使用吗?
谢谢
:试试这个:
SELECT
C.cart_id,
I.item_id,
C.quantity,
COALESCE(I.discounted_price, I.price) AS price
FROM
cart C,
item I
WHERE
I.item_id = C.item_id
从参数列表中选择第一个非空值。也就是说,当折扣价格为空时,它返回价格
如果“null”值为0.00,则可以使用此值:
SELECT
C.cart_id,
I.item_id,
C.quantity,
IF(I.discounted_price > 0, I.discounted_price, I.price) AS price
...
也就是说,如果折扣价格大于零,则使用该价格,否则使用正常价格。在SQL Server中,这将是:
SELECT C.cart_id,I.item_id,C.quantity, CASE WHEN I.discounted_price IS NULL THEN I.price ELSE I.discounted_price END AS price
FROM cart C, item I
WHERE I.item_id = C.item_id
您可以在mysql中尝试一下
SELECT C.cart_id,I.item_id,C.quantity,
IfNull(I.discounted_price,I.price) as Price
FROM cart C, item I
WHERE I.item_id = C.item_id
如果您使用的是MSSQL,则使用IsNull实际上,如果某个项目没有折扣价格,则我的表中的值为0.00。0是否算作空值?否,0不算作空值。