我有一个常规的帖子表,它有一个日期时间字段。我想获得特定日期范围内的帖子。
例如,我想要在一组帖子之间创建的所有帖子,以及在其他日期范围内创建的另一组帖子,例如 betweenNov 10, 2019
和。Nov 13, 2019
Jan 1, 2019
Jan 15,2019
我想要的是有这样的东西:
[
"Nov 10,2019-Nov 13,2019" => [['id'=>1,'text'=>'something'],['id'=>2,'text'=>'something'],...],
"Jan 1,2019-Jan 15,2019" => [['id'=>1,'text'=>'something'],['id'=>2,'text'=>'something'],...],
...
]
是否可以使用单个查询?
我知道我可以使用类似的东西将它们组合在一起GROUP BY DATE(dateTimeField)
。
但是如何按日期范围对其进行分组?
编辑:我目前拥有的:
SELECT * FROM posts WHERE ( (datetime >= '2019-11-10 00:00:00' AND datetime <= '2019-11-13 23:59:59') OR (datetime >= '2019-01-01 00:00:00' AND datetime <= '2019-01-15 23:59:59')) LIMIT 0,50
这是我的查询,我知道我可以BETWEEN
用于此目的,但我认为这不是问题。
问题是我如何按这样的范围分组:
SELECT * FROM posts WHERE ( (datetime >= '2019-11-10 00:00:00' AND datetime <= '2019-11-13 23:59:59') OR (datetime >= '2019-01-01 00:00:00' AND datetime <= '2019-01-15 23:59:59')) LIMIT 0,50 GROUP BY THE_RANGE_SPECIFIED_IN_WHERE_CLAUSE
我不想要这个:
SELECT * FROM posts WHERE ( (datetime >= '2019-11-10 00:00:00' AND datetime <= '2019-11-13 23:59:59') OR (datetime >= '2019-01-01 00:00:00' AND datetime <= '2019-01-15 23:59:59')) LIMIT 0,50 date(datetime)
我不想根据每一天分开帖子,而是根据我指定的相同范围。