有没有办法搜索具有特定值的一行或更多“集合”。 我希望我能准确地描述这一点。
例如,这是我的表格(在某个时间显示车辆的速度):
| 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
任何人都可以帮助我吗?
提前致谢!
答案 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)
在上一次巡演中,它可能还没有完成,所以如果它在最后一次查询中没有行,你现在还可以继续使用。
当然,你应该考虑兑现游览,因为我知道他们的时间不会再改变了。