由于mysql中的Clause命令,我的查询将无法正常工作

时间:2013-05-06 06:41:39

标签: mysql mysqli

我正在编写查询以显示数据并在该查询中添加order by子句。 我的查询是

SELECT * FROM `coupons` 
WHERE `status` = 'A' &&  `type` = '2'    
&&  `time` > CURDATE() && `start_date` <= CURDATE()
order by `stocks` asc 

在上面的查询中,它按“股票”排序,但在某些情况下股票为零,这种情况我想在最后显示这一行。 我该怎么办请帮助。提前致谢。

3 个答案:

答案 0 :(得分:2)

order by CASE WHEN `stocks` = 0 THEN 1 ELSE 0 END asc , `stocks` asc 

答案 1 :(得分:0)

SELECT *, (if(`stocks` != 0,`stocks`,"")) as newstocks FROM `coupons` 
WHERE `status` = 'A' &&  `type` = '2'    
&&  `time` > CURDATE() && `start_date` <= CURDATE()
order by newstocks asc 

使用上面的代码。

答案 2 :(得分:0)

默认情况下它是asc所以你不必提及它。试试下面的

SELECT * FROM优惠券WHERE status ='A'&amp;&amp; type ='2'&amp;&amp;时间&gt; CURDATE()&amp;&amp; start_date&lt; = CURDATE()按个案股票排序!= 0然后股票结束,股票

首先列出库存为零的物品,然后列出库存=零的行