我正在编写查询以显示数据并在该查询中添加order by子句。 我的查询是
SELECT * FROM `coupons`
WHERE `status` = 'A' && `type` = '2'
&& `time` > CURDATE() && `start_date` <= CURDATE()
order by `stocks` asc
在上面的查询中,它按“股票”排序,但在某些情况下股票为零,这种情况我想在最后显示这一行。 我该怎么办请帮助。提前致谢。
答案 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然后股票结束,股票
首先列出库存为零的物品,然后列出库存=零的行