網站業務需要按實際成立金額排序,要用的有三個字段:price(商品價格),pay(實際支付價格),num(購買數量)。如果商品有優惠就是按pay價格成立,也就是pay>0,如果沒有優惠就是實價成交,pay=0.所以我們要的實際價格就是如果pay>0就是pay*num,否則就是price*num.這也就是要用到三目運算pay>0?pay:price.
那麼mysql有三目運算符嗎
可以用case when,這個mysql應該支持:select a,case when b is null then'xxxx' else b end b from table_xxx where.還有這個
sql中也是支持三目運算的,語法為:
CASE WHEN 條件 THEN 如果符合 ELSE 如果不符合 END
所以在我們這業務中的SQL語句就是:
select CASE WHEN pay>0 THEN pay*num ELSE price*num END as ‘amount’ from table_name order by amount desc;