使用缺失值查詢找出表中缺少的 ID
此查詢旨在識別具有自增唯一主鍵欄位的表中缺少的 ID,其中已刪除的條目可能在 ID 值中造成了間隙。例如,具有以下數據的表:
<code> ID | Value | More fields...</code>
2 | Cat | ...
3 | Fish | ...
6 | Dog | ...
7 | Aardvark | ...
9 | Owl | ...
10 | Pig | ...
11 | Badger | ...
15 | Mongoose | ...
19 | Ferret | ...
預期結果將是缺失 ID 的清單:
<code> ID</code>
1
4
5
8
12
13
14
16
17
18
我們做三個假設:初始第一個 ID 為 1,最大 ID 為最後一個 ID,且目前最後一個 ID 之後沒有刪除的 ID。
對於 SQLite,有一個簡單的解決方案:
<code>SELECT DISTINCT id +1 FROM mytable WHERE id + 1 NOT IN (SELECT DISTINCT id FROM mytable);</code>
此查詢透過從第一個 ID 產生到最後一個 ID 的數字序列並排除現有 ID 來有效地識別缺少的 ID,從而留下缺失的值。這是在 SQLite 中解決此問題的直接有效的方法。
以上是如何找到 SQLite 表中遺失的自動遞增 ID?的詳細內容。更多資訊請關注PHP中文網其他相關文章!