0

Android の SQLite データベースに、列RANKを持つテーブルがあります。ゲームアプリ内です。一部のユーザーがランクを取得した場合、そのランクを挿入し、以前に保存されたランクをインクリメントする必要があります。

RANK列の値が1 2 3 4 5 6 7 8 9で、新しいユーザーが RANK 3 を取得した場合新しいユーザーのランクを挿入し、以前のランクをインクリメントする必要があります。つまり、 3 4 5 6 7 8 94 5 6 7 8 9 10で、新しく作成された3 RANKを挿入する必要があります。

これを行うライブラリメソッドはありますか? それともカスタムロジックを定義する必要がありますか?

私を助けてください。カスタム ロジックが必要な場合は、少なくともヒントを提供してください。

4

1 に答える 1

0

挿入する新しい値のランクが 3 の場合、新しい値を挿入する前にこれを行います。

UPDATE player SET rank=rank+1 WHERE rank >= 3;

前:

1|a
2|b
3|c
4|d
5|e

後:

1|a
2|b
4|c
5|d
6|e

次に、新しいものを挿入できます。

INSERT INTO player VALUES(3, "new");

最終結果を与える:

SELECT * FROM player ORDER BY rank;

1|a
2|b
3|new
4|c
5|d
6|e
于 2012-04-05T12:13:41.237 に答える