2011-09-13 5 views
-2

레코드 삭제를 통해 행이 누락되는 테이블이 있습니다.MySQL에서 행 누락 워크

어떻게 그 테이블에서 누락 된 행을 확인한 다음 PHP에서 누락 된 행을 채울 수 있습니까?

내가 올바른 루프 밖으로 단지 캔트 작업 순서에 누락 된 항목을 찾을 수

건배

에게
+0

질문을 명확히해야합니다. – simshaun

+0

왜 누락 된 행을 채워야합니까? – Problematic

+3

우리가 볼 수 있도록 코드를 게시하여 매번 제가 말한 니켈이 있다면 .... – Drewdin

답변

2

한 가지 방법을 사용하기 위해 사용하지만 루프 추측 횟수 (*) 및 최대 (ID를 비교하는 것입니다). 누락 된 개수를 파악한 다음 이진 검색에서와 같이 확인하는 범위를 포함하여 시작해야합니다.

대체 방법은 id에 의해 정렬 된 행을 반복하는 것이며 시퀀스가 ​​점프 할 때 삽입을 트리거합니다.

$lastId = 0; 
foreach ($rows as $row) 
{ 
    if ($lastId + 1 != $row['id']) { 
     fillInRows($lastId + 1, $row['id'] -1); 
    } 
    $lastId = $row['id']; 
} 

function fillInRows($min, $max) 
{ 
    for ($i = $min; $i <= $max; $i++) { 
     // exercise left for the reader 
    } 
} 
+0

감사합니다, 이것은 정확히 내가 무엇을 찾고 있었는지 - 분명히 질문은 운영자가 생각한 것처럼 막연하지 않습니다. –

관련 문제