我有一个包含3个字段的表格:id
,public
,date
。
如何进行MySQL查询,以便按date
排序行,省略public = false
行,只有行前面的5行和{{1行被取出? (当然也可以获取id = x
的行。)
答案 0 :(得分:1)
假设“之前”和“之后”是指日期,那么您可以使用union all
:
(select t.*
from table t
where t.public = false and
t.date <= (select t2.date from table t2 where t2.id = x)
order by date desc
limit 6
)
union all
(select t.*
from table t
where t.public = false and
t.date > (select t2.date from table t2 where t2.id = x)
order by date asc
limit 5
)
第一个子查询获得6行,其日期为1或“x”日期之前。第二个后来严格获得5行。