您可以通过联接执行以下 *** 作:
select * from table a inner join ( select id, max( if(`date` <= __LOWERLIMIT__ ,`date`, 0) ) as min_date, min( if(`date` >= __UPPERLIMIT__ , `date`, UNIX_TIMESTAMP()) ) as max_datefrom tablewhere id = __ID__group by id ) range on range.id = a.id and a.`date` between min_date and max_date;
我不是MySQL专家,因此如果需要一些语法调整,我们深表歉意。
更新: OP也发现了这个非常好的解决方案。
(select * from t where date < start_date order by date desc limit 1) union (select * FROM t WHERe date between start_date and end_date) union (select * from t where date > end_date order by date asc limit 1)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)