我有一个产品数据库,产品按人气排序(number_sold)。问题是很多流行的产品都缺货。我想按number_sold排序,其中in_stock至少为1,然后显示缺货产品(仍按number_sold排序)。
示例数据:
Blue Car - stock 0 - sold 8
Red Car - stock 2 - sold 4
Yellow Car - stock 0 - sold 5
Tan Car - stock 8 - sold 1
Purple Car - stock 1 - sold 2
我想按以下顺序显示:
1) Red
2) Purple
3) Tan
4) Blue
5) Yellow
这可能在一个MySQL查询中吗?
答案 0 :(得分:2)
答案 1 :(得分:0)
先按照基于库存水平的表达式排序,然后按销售数量排序:
select * from products
order by in_stock = 0, number_sold desc
这是有效的,因为在mysql中,true为1
,false为0
,因此对于所有库存产品,表达式in_stock = 0
为零,将首先排序。对于缺货产品,表达式排在最后1
。