これは、このスレッドに沿って発生した誰にとってもプログラミングを簡単にするための私の解決策です。トリックは、1 回の更新で挿入/削除の上または下のすべての注文インデックスを更新できることです。
SQL クエリでサポートされている、テーブル内の数値 (整数) 列の使用
CREATE TABLE myitems (Myitem TEXT, id INTEGER PRIMARY KEY, orderindex NUMERIC);
orderindex 6 のアイテムを削除するには:
DELETE FROM myitems WHERE orderindex=6;
UPDATE myitems SET orderindex = (orderindex - 1) WHERE orderindex > 6;
2 つのアイテム (4 と 7) を交換するには:
UPDATE myitems SET orderindex = 0 WHERE orderindex = 4;
UPDATE myitems SET orderindex = 4 WHERE orderindex = 7;
UPDATE myitems SET orderindex = 7 WHERE orderindex = 0;
つまり、0 は使用されないため、あいまいな項目を避けるためにダミーとして使用します。
3 に挿入するには:
UPDATE myitems SET orderindex = (orderindex + 1) WHERE orderindex > 2;
INSERT INTO myitems (Myitem,orderindex) values ("MytxtitemHere",3)