테이블에 기록된 데이터는 대략 다음과 같습니다.MySQL이 인접한 두 행 사이의 열 차이를 계산하는 방법: 먼저 [r1.rownum = r2.rownum - 1]을 사용하여 두 레코드가 이전 행과 다음 행인지 확인한 다음 TIMEDIFF 함수를 사용하여 시간을 계산합니다. 차이점. ㅋㅋㅋ 서버 측에는 운전자가 보고한 GPS 포인트 정보를 기록하는 테이블이 있습니다. 테이블 구조는 다음과 같습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
-- 司机GPS收集表
CREATE TABLE captainad_driver_gps_position (
id BIGINT NOT NULL auto_increment COMMENT '主键',
business_id BIGINT DEFAULT NULL COMMENT '业务ID',
device_mac VARCHAR (64) DEFAULT NULL COMMENT '设备MAC地址',
device_imei VARCHAR (64) DEFAULT NULL COMMENT '设备IMEI',
lat_lng VARCHAR (64) DEFAULT NULL COMMENT '纬经度',
capture_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '捕获时间',
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
PRIMARY KEY (id),
KEY `idx_business_id` (`business_id`) USING BTREE
) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '司机GPS收集';
로그인 후 복사
이제 GPS 위치를 얻으려면 Capture_time을 누르십시오. . 시간별로 정렬한 후 기록 간의 차이를 계산합니다. 둘 사이의 차이를 계산하려면 반드시 두 개의 레코드를 얻어야 합니다. 하나는 앞뒤로 하나씩, 여기서는 교묘하게 변수를 사용하여 현재 행의 행 수를 기록하고 그 결과를 중첩할 수 있습니다. 루프 쿼리를 사용할 때마다 행 기록의 목적을 달성하여 어떤 두 레코드가 차례로 있는지 알 수 있습니다.
라인 번호를 출력하는 SQL 문:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
|
칼럼을 주목해주세요!
위 내용은 MySQL의 특정 열에서 인접한 두 행 간의 차이를 계산하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!