我在 MySQL 中有下表:
----------------------------
| id | price | price_promo |
----------------------------
| 1 | 10 | 0 |
| 2 | 8 | 0 |
| 3 | 10 | 9 |
----------------------------
我有以下查询:
$SQLquery = "SELECT * FROM table ORDER BY price ASC"
如果 price_promo > 0
我只想忽略价格列,以按实际收购价格下订单,并获得此结果:
----------------------------
| id | price | price_promo |
----------------------------
| 1 | 10 | 0 |
| 3 | 10 | 9 |
| 2 | 8 | 0 |
----------------------------
执行此操作需要什么查询?
最佳答案
你可以试试
SELECT * FROM your_table
ORDER BY
CASE
WHEN price_promo = 0 THEN price
WHEN price_promo IS NULL then price
ELSE price_primo
END
在用户评论后编辑:
如果你想要降序使用这个
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
关于MYSQL ORDER BY 2列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10026809/