2011-09-13 74 views
-2

我有一個表最終會通過刪除記錄而丟失一行。計算MySQL中缺失的行

我該如何檢查表中缺少的行,然後用PHP填充這個缺失的行。

我猜但其使用循環我只是不能制定出正確的循環使用

乾杯

+0

你需要澄清你的問題。 – simshaun

+0

爲什麼你需要填補缺失的行? – Problematic

+3

發佈你的代碼,所以我們可以看看,如果我每次說我這個時都有鎳...... – Drewdin

回答

2

一種方式在序列中找到了丟失的物品是比較COUNT(*)和max(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

謝謝,這正是我正在尋找的 - 顯然這個問題並不像主持人所想的那樣模糊 - –