SQL中的条件表达式

chu*_*tte 2 php mysql sql

我正在使用MYSQL和PHP.我有一个名为item的表.它的两个属性是价格和折扣价.我有SELECT语句如下:

$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';
Run Code Online (Sandbox Code Playgroud)

我想修改这个sql语句并包含一个条件表达式,使得:如果discounted_price为0,则选择其他价格,选择discounted_price.可以在SQL语句中使用条件表达式吗?谢谢!:)

Tat*_*nen 5

试试这个:

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
Run Code Online (Sandbox Code Playgroud)

COALESCE从参数列表中选择第一个非空值.也就是说,当discount_price为NULL时,它返回价格.

如果'null'值为0.00,则可以使用:

SELECT
    C.cart_id,
    I.item_id,
    C.quantity,
    IF(I.discounted_price > 0, I.discounted_price, I.price) AS price
    ...
Run Code Online (Sandbox Code Playgroud)

也就是说,如果折扣价大于零,请使用它,否则使用正常价格.