我有一列插入值增加1(列不是AUTO_INCREMENT)。我如何尋找它的差距,例如專欄:1,2,4,5,6 - 我想選擇那個缺失的3.謝謝!mysql檢查列值是否增加1丟失
-1
A
回答
0
簡單的情形:只有第一間隙
你可以做到這一點:
SELECT
MIN(seq)
FROM
(SELECT
sequence,
@seq:[email protected]+1 AS seq
FROM
t CROSS JOIN (SELECT @seq:=0) AS init) AS gap
WHERE
sequence!=seq
,尤其是圓形場sequence
指向你的專欄,在這裏你要找的差距。見fiddle demo
現在常見的情況。
你不能只使用JOIN
或類似的東西,因爲你的表的大小可能小於它可能的差距。想象一下這種情況,當你的桌子只有最小值和最大值時。例如,1
和10
- 並且您想獲取所有行,因此結果將爲序列號1, 2, ... , 10
。無論你如何將JOIN
與自己的表,你只會得到兩行 - 因爲只有這兩個存在於你的表中。 UNION
也不是一個選項 - 因爲如果我們將生成10
,通常情況下可以是100
,1000
,電子郵件。因此,對於普通情況下,你必須創建順序表,並從MIN(sequence)
和MAX(sequence)
使用值填充它 - 使用LEFT JOIN,然後,不喜歡:
SELECT
full_table.sequence
FROM
full_table
LEFT JOIN t
ON full_table.sequence=t.sequence
WHERE
t.sequence IS NULL
0
這就是我用這些任務的聲明。 id
代表您想要分析的字段。
SELECT t1.id+1 AS 'start_seq',
MIN(t2.id) - 1 AS 'end_seq'
FROM yourTable AS t1,
yourTable AS t2
WHERE t1.id < t2.id
GROUP BY t1.id
HAVING 'start_seq' < MIN(t2.id);
雖然這一個就完事了,有可能是在那裏更好,更緊湊的解決方案。
0
試試這個!
DECLARE @a int
SET @a = SELECT MIN(num) FROM table1
WHILE (SELECT MAX(num) FROM table1) > @a
BEGIN
IF @a NOT IN (SELECT num FROM table1)
PRINT @a
SET @[email protected]+1
END
0
你可以嘗試這樣的事情
SELECT (t1.id + 1) as gap_starts_at,
(SELECT MIN(t3.id) -1 FROM your_table t3 WHERE t3.id > t1.id) as gap_ends_at
FROM your_table t1
WHERE NOT EXISTS (SELECT t2.id FROM your_table t2 WHERE t2.id = t1.id + 1)
HAVING gap_ends_at IS NOT NULL
相關問題
- 1. Mysql - 檢查VARCHAR列的增量是否有缺失
- 2. 檢查整數列表是否增加1
- 3. 檢查整數值是否增加?
- 4. 如何檢查連接是否丟失
- 5. 如何檢查一個序列是否正在增加+1遞增clojure?
- 6. 是否值列表增加?
- 7. MySQL:增加列值
- 8. JPA將列值增加1
- 9. Mysql檢查mysql數據庫中的值是否失敗?
- 10. 檢查行號是否增加,Excel
- 11. 檢查數字是否增加?
- 12. 遞歸 - 檢查數組是否增加
- 13. 檢查數字是否增加36
- 14. 是否可以通過php將特定列值(int)增加1?
- 15. 如何檢查值是否爲1.#INF0000?
- 16. Rcpp函數檢查是否缺失值
- 17. 檢查MySQL中的值是否存在失敗
- 18. Python:如何有效地檢查序列是否正在增加
- 19. 如何檢查列表的數量是否增加?
- 20. MySQL查詢可能會丟失列
- 21. PHP檢查MySQL表是否包含值
- 22. MySQL檢查MAX值是否重複
- 23. 檢查mysql中是否存在值
- 24. 檢查MySQL列是否爲空
- 25. Perl DBI MySQL:檢查列是否爲UNIQUE
- 26. 檢查MySQL列是否包含字符
- 27. Mysql - 自加入檢查是否相等
- 28. mysql導出丟失自動增量
- 29. 使用XDocument.Parse時,檢查「根元件是否丟失」?
- 30. Python:檢查IRC連接是否丟失(PING PONG?)