如何使用上下文点查询MySQL图数据

时间:2013-01-22 18:27:55

标签: php mysql graph flot

我的website上有一张工作图,但是图形数据在24小时的时间范围内开始和结束,真的应该从帧开始。我的查询看起来像:

select * where timestamp > 24hrs

如何查询时间范围内的所有数据,以及时间范围之前的第一个数据点?我不能使用恒定值,因为有时屏幕外点是10小时之外,有时距离10秒钟。

1 个答案:

答案 0 :(得分:1)

您可以在时间范围之前选择第一个数据点:

SELECT * FROM yourtable WHERE timestamp <= 24 ORDER BY timestamp DESC LIMIT 1

如果可以有多个相同的时间戳,那么这可以随机选择一个 - 如果这是不可接受的,那么请改用ORDER BY timestamp DESC, primary_key

所以你可以通过UNION获得你想要的东西:

/* This gets the first item previous to your range limitation */
SELECT
    * FROM yourtable
    WHERE timestamp <= 24 ORDER BY timestamp DESC LIMIT 1
UNION
/* Your original query */
SELECT
    * FROM yourtable
    WHERE timestamp > 24;

我在这里假设(基于你的问题)时间戳是一个整数,但如果它是DATETIME列,则可以调整上述内容。