复杂多列mysql按顺序排序
我有一个产品数据库,里面有按流行程度(销售数量)订购的产品。问题是许多受欢迎的产品都脱销了。我想按销售数量进行排序,其中库存至少为1,然后在之后显示缺货产品(仍然按销售数量进行排序) 示例数据:复杂多列mysql按顺序排序,mysql,sql-order-by,multiple-columns,Mysql,Sql Order By,Multiple Columns,我有一个产品数据库,里面有按流行程度(销售数量)订购的产品。问题是许多受欢迎的产品都脱销了。我想按销售数量进行排序,其中库存至少为1,然后在之后显示缺货产品(仍然按销售数量进行排序) 示例数据: 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 我希望按以下顺序显
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查询中是可能的吗?首先根据库存水平,然后根据售出数量通过表达式订购:
select * from products
order by in_stock = 0, number_sold desc
这是因为在mysql中,true是1
,false是0
,因此对于所有库存产品,表达式in_stock=0
是零,将首先排序。对于缺货产品,表达式为1
最后排序。您可以使用
select * from product order by (in_stock >0) desc, number_sold desc
当然可以,只是
按订单(库存>0)描述,销售数量描述
我想我看同一个DB表的时间太长了。。。上述解决方案适用于所有测试表/值。再次感谢towr!删除以前的回复,以保持此帖子对任何其他需要相同解决方案的人更干净:)@towr。你应该发布一个答案,这样它才能被接受。@GordonLinoff啊,你是对的,对不起,我的坏习惯是只在评论中回答,尽管这么说是不允许的。