我有一個Sqlite表有一個play_order列。
如果我刪除一個項目,是否有命令重新排序數據以從列中刪除現在缺失的數字?更新Sqlite列以刪除缺失的數字
例如,假設表看起來是這樣的:
_id | play_order
----------------
1 | 0
2 | 1
3 | 2
4 | 3
5 | 4
我刪除_id 3,我想重新排序play_order所以_id 4現在有2 play_order和_id 5有3個等。 ..
我可以在Java(Android)中執行此操作,但如果可能的話,寧願在SQL中執行此操作。
我試過使用虛假的行ID,但數據是遍佈表,並可以在任何點上充滿其他隨機數據。
我也想過做一個子查詢和獲取所有的數據,但不知道我是否可以循環它或設置順序。
就Android而言,我已經考慮在contentresolver上做一個「applybatch」,但無法讓它工作。
我想不出一種只用SQLite語句做到這一點的方法。也許如果你描述爲什麼你需要這樣做,也許有人可以提出一個不需要這樣做的替代方案。 – Karakuri
其實,我*可以想出一種使用觸發器的方式,但我不確定這是個好主意。 – Karakuri
該數據是一個播放列表。我需要play_order從0開始,隨着增加的項目數量增加。但是,當你刪除一個項目時,我需要重新排列其他項目,所以沒有差距。 我使用內置的Android內容解析器和他們的表,所以我不能改變結構。 – Eric