获取最后插入的行和该日期之前的10分钟

时间:2014-02-03 14:59:38

标签: mysql

有人能指出我正确的方向吗?我需要将上次插入日期的数据检索到该日期之前的10分钟。

这是我的代码,有没有更好的方法来写这个?

SELECT Datum, Value
FROM tableX 
WHERE ItemFK = 109 
AND Datum BETWEEN 
DATE_SUB(
    (
        SELECT Datum 
        FROM tableX 
        WHERE ItemFK = 109 
        ORDER BY Datum DESC 
        LIMIT 1
    ), INTERVAL 10 MINUTE
)
AND (
    SELECT Datum 
    FROM tableX 
    WHERE ItemFK = 109 
    ORDER BY Datum DESC 
    LIMIT 1
) 
ORDER BY Datum DESC

我不能使用DATE_SUB(NOW(),INTERVAL 10 MINUTE) AND NOW(),因为我不知道上次插入的时间。

其他方式是两个查询。一个用于检索上一个日期,另一个用于从该日期获取数据到该日期之前的10分钟。

修改 添加了SQL Fiddle http://sqlfiddle.com/#!2/3c62c/1

感谢。

1 个答案:

答案 0 :(得分:0)

SELECT x.* 
  FROM tblTable x
  JOIN 
     ( SELECT MAX(datum) max_datum FROM tblTable ) y 
    ON x.datum >= y.max_datum - INTERVAL 10 minute;

http://sqlfiddle.com/#!2/3c62c/18