是否有一种“简单的方法”可以从表中获取两行数据,并添加具有“中间”值的行?
我想从每一行获取纬度、经度和时间戳。将时间戳与上一行的时间戳进行比较,如果时间戳大于我的最小值,则插入新行...抓取相隔 1 分钟的两行,并每 10 秒添加行...
使用存储过程是解决此问题的最佳方法吗?最简单?
当前使用 mySql 和 PHP...
最佳答案
我会抓取数据并用 PHP 进行数学计算。 SQL 并不是那么通用,您可能会感到头疼。
编辑:实际上,只是为了好玩,您可以通过左连接日历表来使数学变得更容易。
首先,您需要一个值为 0-9 的 ints
表。然后你可以这样做:
SELECT cal.t, lat, lng FROM (
SELECT {start_time} + INTERVAL (t.i*1000 + u.i*100 + v.i*10) SECOND as t
FROM ints as t
JOIN ints as u
JOIN ints as v
WHERE t <= {end_time}
) LEFT JOIN locations ON (cal.t = locations.stamp)
这将返回一个表,其中 lat
和 lng
的 NULL
值,其中没有条目在 10 秒标记处,这样您就可以迭代并计算这些值。请记住,只有当您拥有的所有数据点(除了开始和结束)都正好落在 10 秒标记上时,这才有效。
关于php - mysql 插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5758800/