选择Statement,其中包含Mysql中where子句中使用的下一行的值

时间:2014-04-09 10:38:06

标签: mysql datetime select

是否可以构造包含SELECT的{​​{1}}语句 使用“下一行”中某列的值的子句?

我有一个日期和时间字段date_entered。 即。给定一个带有名为“date_entered”的字段的表 以下值我想要一个选择行的SELECT语句 “WHERE

我尝试了Post但没找到我正在看的内容。

1 个答案:

答案 0 :(得分:1)

如果您的记录是按时间顺序排序的,那么您可能会遇到如下查询:

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)