Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
复杂多列mysql按顺序排序_Mysql_Sql Order By_Multiple Columns - Fatal编程技术网

复杂多列mysql按顺序排序

复杂多列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 我希望按以下顺序显

我有一个产品数据库,里面有按流行程度(销售数量)订购的产品。问题是许多受欢迎的产品都脱销了。我想按销售数量进行排序,其中库存至少为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
我希望按以下顺序显示:

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啊,你是对的,对不起,我的坏习惯是只在评论中回答,尽管这么说是不允许的。