CBu*_*atu 0 mysql sql-order-by
我在MySQL中有以下表格:
----------------------------
| id | price | price_promo |
----------------------------
| 1 | 10 | 0 |
| 2 | 8 | 0 |
| 3 | 10 | 9 |
----------------------------
Run Code Online (Sandbox Code Playgroud)
我有以下查询:
$SQLquery = "SELECT * FROM table ORDER BY price ASC"
Run Code Online (Sandbox Code Playgroud)
我想要的是忽略价格列,如果price_promo > 0按实际收购价格订购,并得到这个结果:
----------------------------
| id | price | price_promo |
----------------------------
| 1 | 10 | 0 |
| 3 | 10 | 9 |
| 2 | 8 | 0 |
----------------------------
Run Code Online (Sandbox Code Playgroud)
我需要做什么查询呢?
你可以试试
SELECT * FROM your_table
ORDER BY
CASE
WHEN price_promo = 0 THEN price
WHEN price_promo IS NULL then price
ELSE price_primo
END
Run Code Online (Sandbox Code Playgroud)
用户评论后编辑:
如果您想降序使用此功能
SELECT * FROM your_table
ORDER BY
CASE
WHEN price_promo = 0 THEN price
WHEN price_promo IS NULL then price
ELSE price_primo
END DESC
Run Code Online (Sandbox Code Playgroud)