【发布时间】:2016-11-10 17:55:31
【问题描述】:
我们有一个用户表,其列membership_end 顾名思义,即用户会员资格结束的日期。现在有些用户从不购买会员资格,因此该字段为空。对于某些用户,该字段是过去的(会员资格已过期)。 我需要的是首先对活动成员进行排序(按membership_end date desc 排序),然后以一些独立的排序顺序对其余用户进行排序。基本上我们需要在顶部显示活跃成员。
SELECT * FROM accounts where membership_end>=now()
order by membership_end desc
union
???
- 我们应该使用联合还是其他方式?
- 为了避免重复,第二个查询是什么?
提前致谢
好的,把事情弄清楚一点。
SELECT * FROM accounts where membership_end>=now()
order by membership_end desc
为我们提供了 12 个活跃成员,这很好。然后我们有这个:
SELECT * FROM accounts where membership_end<now()
order by id desc
我们只需将这两者结合到一个查询中。就是这样。
编辑: 其实我想通了。这很简单。
选择 id,membership_end 来自帐户 ORDER BY members_end >= NOW( ) DESC , id DESC
没有工会。没有复杂的查询:-)
【问题讨论】: