从里程表计数中删除数据的Mysql或php解决方案
我有以下表格结构:从里程表计数中删除数据的Mysql或php解决方案,php,mysql,Php,Mysql,我有以下表格结构: CREATE TABLE `schedules_trackings` ( `id` bigint(20) NOT NULL, `device_id` bigint(20) UNSIGNED NOT NULL, `schedule_id` bigint(20) UNSIGNED NOT NULL, `latitude` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL, `longitude` varch
CREATE TABLE `schedules_trackings` (
`id` bigint(20) NOT NULL,
`device_id` bigint(20) UNSIGNED NOT NULL,
`schedule_id` bigint(20) UNSIGNED NOT NULL,
`latitude` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`longitude` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`created_at` datetime NOT NULL DEFAULT current_timestamp(),
`altitude` double DEFAULT NULL,
`accuracy` double DEFAULT NULL,
`heading` double DEFAULT NULL,
`speed` double DEFAULT NULL,
`activity` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`battery` double DEFAULT NULL,
`segmentid` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`uuid` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`odometer` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
ALTER TABLE `schedules_trackings`
ADD PRIMARY KEY (`id`),
ADD KEY `device_id` (`device_id`,`schedule_id`,`created_at`) USING BTREE,
ADD KEY `schedule_id` (`id`,`created_at`) USING BTREE;
ALTER TABLE `schedules_trackings`
MODIFY `id` bigint(20) NOT NULL AUTO_INCREMENT;
移动设备每10秒向我发送一次里程表的坐标和累进计数。
我需要从这个计数中删除速度超过30公里小时的距离的问题,我有速度数据,但我不知道如何从累进计数中删除它。
有使用mysql查询或php的解决方案吗
一些示例数据:
lat1 - lng1 - speed1 - 0mt
lat2 - lng2 - speed2 - 50mt
lat3 - lng3 - speed3 - 100mt
例如,如果我只删除速度为2的行,我将在最后一个点上获得100mt,但这不是正确的方法。不包括速度2我的实际距离是50mt这是一个非常简单的例子,实际查询必须在25k记录上进行。
目标是获得步行产生的距离,放弃汽车产生的距离。计算两个相邻点之间的速度。然后,当两个相邻速度超过限制时,移除(但我建议不要移除,而是用特殊标签标记)中间点。
从速度>30的轨迹中删除,或者我遗漏了什么?或者在插入数据库之前,只需检查速度并跳过插入。我可能会发疯,但为什么要销毁数据?为什么不将其限制在出站端,也就是查询端?如果您得到的数据准确可靠,那么只需将查询更改为省略而不是删除我已经添加了有关该问题的更多信息。将数据插入这些表的过程由您控制?如果是,可以为测量之间的距离增量添加一列。例如,lat1-lng1-speed1-0mt-0mt/lat2-lng2-speed2-50mt-50mt/lat3-lng3-speed3-100mt-50mt。因此,您可以在示例中排除speed2,并获得第三次测量的实际距离(与前一次测量相比为50公吨)