2011-04-22 2 views
0

테이블에서 두 행의 데이터를 가져와 '사이에'값이있는 행을 추가하는 '쉬운 방법'이 있습니까?mysql 데이터를 보간

각 행의 위도, 경도 및 타임 스탬프를 가져 오려고합니다. 시간 소인이 이전 행의 시간 소인과 비교하고 시간 소인이 최소보다 크면 새 행을 보간합니다 ... 1 분 간격으로 두 행을 잡고 매 10 초마다 행을 추가하십시오.

저장된 프로 시저가 이것에 대해 갈 수있는 가장 좋은 방법은? 가장 쉬운가요?

현재 MySQL과 PHP를 사용하여

...

답변

2

난 그냥 데이터를 잡아 PHP에서 수학을 할 것입니다. SQL은 다용도가 아니며, 두통을 덜어 줄 수 있습니다.

편집 : 사실, 재미만으로도 캘린더 테이블에 왼쪽으로 결합하면 수학을 쉽게 할 수 있습니다.

우선 ints 값이 0-9 인 테이블이 필요합니다. 그럼 당신은 같은 것을 수행 할 수 있습니다 이 10 초 지점에 대한 항목이이없는 곳은 NULLlat 값과 lng있는 테이블을 반환

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) 

을, 그래서 당신은을 통해 반복하고 수학을 할 수 그 사람들을 위해서. 명심하십시오. 이것은 여러분이 가지고있는 모든 데이터 포인트가 (시작과 끝을 제외하고) 10 초의 마침표 바로 위에있는 경우에만 작동합니다.