MySQL在寻找价值领域/价值变化?

时间:2014-05-07 10:14:47

标签: php mysql

有没有办法搜索具有特定值的一行或更多“集合”。 我希望我能准确地描述这一点。

例如,这是我的表格(在某个时间显示车辆的速度):

| timestamp  | speed  |
| 2014-04-01 | 0.00   |
| 2014-04-02 | 0.00   |
| 2014-04-03 | 0.00   | 
| 2014-04-04 | 0.00   |
| 2014-04-05 | 0.00   |
| 2014-04-06 | 0.00   |
| 2014-04-07 | 20.00  |
| 2014-04-08 | 21.00  |
| 2014-04-09 | 24.00  |
| 2014-04-10 | 22.00  |
| 2014-04-11 | 24.00  |
| 2014-04-12 | 0.00   |
| 2014-04-13 | 0.00   |
| 2014-04-14 | 0.00   |
| 2014-04-15 | 30.00  |
| 2014-04-16 | 34.00  |
| 2014-04-17 | 37.00  |
| 2014-04-18 | 31.00  |
| 2014-04-19 | 0.00   |
| 2014-04-20 | 0.00   |
| 2014-04-21 | 0.00   |
| 2014-04-22 | 0.00   |

每当车速大于0时,车辆就会移动, 所以我想输出如下:

Tour 1: 2014-04-07 - 2014-04-11
Tour 2: 2014-04-15 - 2014-04-18

任何人都可以帮助我吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

我不认为一个查询是可能的。

你可以通过那种方式进行第一次旅行

SELECT * FROM table WHERE speed > 0 ORDER BY timestamp ASC

SELECT * FROM table WHERE speed = 0 AND timestamp > previous_timestamp ORDER BY timestamp ASC

其次你可以这样做

SELECT * FROM table WHERE speed > 0 AND timestamp > previous_timestamp ORDER BY timestamp ASC

SELECT * FROM table WHERE speed = 0 AND timestamp > previous_timestamp ORDER BY timestamp ASC

每次你应该为之前的查询找到的previous_timestamp值(使用php)

在上一次巡演中,它可能还没有完成,所以如果它在最后一次查询中没有行,你现在还可以继续使用。

当然,你应该考虑兑现游览,因为我知道他们的时间不会再改变了。