我正在使用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语句中使用条件表达式吗?谢谢!:)
试试这个:
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)
也就是说,如果折扣价大于零,请使用它,否则使用正常价格.