id ref_id dates
1 1 2017-01-01 00:00:00
2 1 2017-01-31 00:00:00
3 2 2017-01-01 00:00:00
4 2 2017-01-31 00:00:00
5 3 2016-01-01 00:00:00
6 3 2016-01-31 00:00:00
查询将像
SELECT * FROM table WHERE dates GROUP By ref_id
我想在第1行和第1行中比较ref_id
明智的开始日期。第二行的结束日期应该在当前日期之间。
因此输出只是那些介于当前日期之间的ref_id。
输出
ref_id
1
2
或1,2
的GROUP_CONCAT想使用没有UNION的单一查询。
答案 0 :(得分:3)
试试这个:
SELECT ref_id
FROM table
GROUP BY ref_id
HAVING NOW() BETWEEN MIN(dates) AND MAX(dates)
查询使用NOW以获取当前日期/时间值。如果此值位于ref_id
组的最小和最大日期值定义的时间间隔内,则查询将返回此ref_id
。