gpt4 book ai didi

MYSQL 两表排序 TRICKY

转载 作者:行者123 更新时间:2023-11-29 17:54:38 25 4
gpt4 key购买 nike

早上好,我有个问题是否有人知道...这是一个棘手的问题...我有两列

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 的情况下进行处理,并且“20171208”是 mysql 中的最后结果(不应用顺序)...也许需要组或其他东西

非常感谢您的回答。最好的问候P。

最佳答案

很明显,您没有 20171208 之前的日期,因此结果是一个空集。

order by 子句仅适用于结果,这意味着查询将首先执行 where 子句,然后对过滤后的结果进行排序。您不能指望先按查询的 order 部分然后再按 where 部分进行排序。

请找到我创建的sqlFiddle,当您在查询条件中输入 <= 而不是 < 时,会发现它工作正常

http://sqlfiddle.com/#!9/7609ba/18

关于MYSQL 两表排序 TRICKY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48972215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com