早上好,我有疑问,如果有人知道......这是一个棘手的问题......我有两个专栏
date active
20180211 0
20180100 0
20171208 1
我需要先按active 1 + date
排序,然后按active 0 + date
....
预期结果:
date active
20171208 1
20180211 0
20180100 0
无问题的工作解决方案
SELECT * FROM xy ORDER BY active DESC, date DESC
现在我需要实现子句 WHERE ,因为会有xy结果,这里有问题。
SELECT * FROM xy WHERE date < 20171208 ORDER BY active DESC, date DESC LIMIT 1
这不起作用,仍然在没有ORDER和&#34; 20171208&#34;是mysql的最后一个结果(订单未应用)......也许需要组或其他东西
非常感谢您的回答。最好的问候P.
答案 0 :(得分:0)
很明显,你没有20171208之前的日期,所以结果是一个空集。
order by子句仅适用于结果,这意味着查询将首先执行where子句,然后对筛选结果进行排序。您不能期望先执行订单,然后再查询查询的where部分。
请找到我创建的sqlFiddle,看看它放在&lt; =而不是&lt;在查询条件