是否可以构造包含WHERE
的SELECT
语句子句使用"下一行"中某列的值?
我有一个日期和时间字段date_entered。即,给定一个具有名为"date_entered"的字段的表下面的值我想要一个SELECT语句来选择行"WHERE date_entered>='current_date' and date_entered<=[NEXT ROW]date_entered
"
我尝试了Post,但没有找到我正在查看的内容。
如果您的记录是按时间顺序排列的,那么您可能会通过这样的查询:
SELECT
t1.*,
min(t2.date_entered) as next_row_date
from mytable t1
join mytable t2
/* ON nothing */
where t1.id < t2.id
and t1.date_entered > NOW()
group by t1.id
having t1.date_entered <= next_row_date
如果你真的需要下一排的日期。。。使用子查询可能会得到更好的结果。类似的东西
SELECT
t1.*,
from mytable t1
where t1.date_entered > NOW()
and t1.date_entered < ( SELECT date_entered from mytable t2 where t2.id > t1.id limit 1)