繁体   English   中英

mysql选择Query 2 where选项

[英]mysql Select Query 2 where options

我需要编写一个查询来从数据库中为搜索页面选择产品,此时查询非常简单

SELECT * FROM products WHERE stock > 0 ORDER BY id DESC

这个查询从最新版本开始带回产品很好,我们将很快进入销售,因此我需要将查询更改为按销售下降的最新产品订购,然后显示其余未降序的产品。 如果产品在售,则rrp不等于0.有没有办法可以执行此操作而无需运行两个单独的查询?

是在想什么

SELECT * FROM products WHERE stock > 0 ORDER BY (rrp != 0) DESC, id DESC

但这不起作用。

提前致谢

您可以按多列进行排序

SELECT * FROM products WHERE stock > 0 ORDER BY rrp DESC, id DESC

或2轮

SELECT * FROM products WHERE stock > 0 AND rrp != 0 ORDER id DESC

尝试这个:

SELECT * 
FROM products 
WHERE stock > 0 
ORDER BY 
Case when rrp != 0 then 0 else 1 end,
id DESC
SELECT * FROM products WHERE stock > 0 and rrp != 0 ORDER BY rrp DESC, id DESC

您的RRP是否像布尔值一样用于确定产品是否在销售中。

请检查以下参考SQLFIDDLE

select * from sale
where stock>0
and rrp <>0
order by stock desc, id

ID  STOCK   RRP
3   490     1
4   200     1
1   120     1

看起来你可能有其他意图,而不是你在这里提到的最简单的要求。

尝试这个

       SELECT * 
              FROM products 
       WHERE stock > 0 

       CASE  WHEN rrp != 0 THEN (ORDER BY rrp DESC) 
       CASE  WHEN rrp= 0   THEN (ORDER BY id DESC)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM