MySQL按两列的值排序

时间:2014-03-07 12:28:32

标签: mysql sql

在一个表格行中,我有一列product_price。如果产品具有较低的价格(折扣),则在sql结果中将discount_price列设置为别名。如果产品没有折扣(没有更低的价格),则该colum discount_price为空。

我想要的是订购此套装并按照product_price(如果discount_price为空)和discount_price的值排序。

例如

 
----------------------------------------
ID    product_price   discount_price
----------------------------------------
1        4800            NULL
2        13000           4400
3        3300            NULL
4        10500           9600
5        1600            NULL

我想在下订单时获得此结果:(如果discount_price为null,请检查product_price中的值,如果discount_price是discout_price中的not_null检查值)


----------------------------------------
ID    product_price   discount_price
----------------------------------------
4        10500           9600
1        4800            NULL
2        13000           4400
3        3300            NULL
5        1600            NULL

2 个答案:

答案 0 :(得分:1)

试试这个:

SELECT * FROM my_table
ORDER BY IFNULL(discount_price, product_price);

答案 1 :(得分:1)

试试这个

 SELECT * FROM table1
 ORDER BY CASE WHEN discount_price IS NULL     then PRODUCT_PRICE
               WHEN discount_price IS NOT NULL then discount_price 
     END DESC

DEMO HERE