选择Mysql中where子句中使用的下一行值的语句



是否可以构造包含WHERESELECT语句子句使用"下一行"中某列的值?

我有一个日期和时间字段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)

相关内容

  • 没有找到相关文章

最新更新