1
我發現this話題對於解決我的問題非常有幫助。但我想找到解決另一個問題的方法。如果數字序列看起來像這樣的01258,那麼缺失的空位是3 4 7.完美的結果,但是如果序列是258,結果是相同的,函數忽略0和1.請幫助我修改該函數,以便檢查空位從0開始?我甚至不知道從哪開始。謝謝。mysql檢查數字序列中的空位
我發現this話題對於解決我的問題非常有幫助。但我想找到解決另一個問題的方法。如果數字序列看起來像這樣的01258,那麼缺失的空位是3 4 7.完美的結果,但是如果序列是258,結果是相同的,函數忽略0和1.請幫助我修改該函數,以便檢查空位從0開始?我甚至不知道從哪開始。謝謝。mysql檢查數字序列中的空位
輸出缺失範圍列表,如所提供的鏈接,但在指定範圍內(未廣泛測試)。
你需要迭代器來獲取實際值。
CREATE TABLE tempTable AS ...
DECLARE @StartID INT ...
DECLARE @EndID INT ...
SELECT @StartID as gap_starts_at,
COALESCE((SELECT MIN(t3.id) -1 FROM tempTable t3
WHERE t3.id > @StartID AND t3.id < @EndID), @EndID) as gap_ends_at
FROM tempTable t1
WHERE NOT EXISTS (SELECT t2.id FROM tempTable t2 WHERE t2.id = @StartID)
UNION
SELECT (t1.id + 1) as gap_starts_at,
COALESCE((SELECT MIN(t3.id) -1 FROM tempTable t3 WHERE t3.id > t1.id),
@EndID) as gap_ends_at
FROM #tempTable t1
WHERE NOT EXISTS (SELECT t2.id FROM tempTable t2 WHERE t2.id = t1.id + 1)
AND id < @EndID
編輯:Here's用一些方法來找到丟失的值的鏈接(我不認爲任何人,雖然在範圍內工作,但有些人可能更容易再擴展其他
謝謝!最後我來解決方案=) – SinSoul
待辦事項你想創建用戶定義的函數來解決tjis問題嗎? –
那麼它將與ID行,我需要序列,因爲我的網站的一切都是用JavaScript完成的。我不能用Ajax來檢查哪些數字是免費的,因爲Ajax響應速度有點慢,因爲所有使用dhtml的東西都不能使用提交,所以我需要在一些線後重新排列id。 e刪除的差距毀了我的腳本 – SinSoul