問題は実際には最も可能性が高いです。私はGoogle(またはstackoverflow)に正しい質問をしていませんが、この単純なことが私を夢中にさせているからです。長い投稿で申し訳ありませんが、状況を明確にしたいと思います。
レコード ID、person_name、priority の mysql テーブルがあります
ID と person_name は一目瞭然です。優先順位は、レコードを降順で並べ替えるために使用されます。最高 = 最高の優先順位です。
簡単にするために、次のレコードがあります。IDは並べ替え順序に対応しています。
1, "John A", 3
2, "John B", 2
3, "John C", 1
4, "John D", 0
他のマシンからのエクスポートからレコードをインポートするまで、これは正常に機能しました。突然、同じ優先度の 2 つのレコードが存在します。
1, "John A", 3
2, "John B", 2
3, "John C", 1
5, "John E", 1
4, "John D", 0
レコードが優先度 DESC、名前 ASC で並べ替えられると、ID3 と ID5 はアルファベット順に並べ替えられますが、これは状況に対応していません。ユーザーが ID5 の優先度を ID2 よりも高くしたい場合、ID2 と一致し、ID5 はアルファ順により ID2 の下に表示されるため、優先度を増やすことはできません。
質問:これよりも効果的にこれを行う方法はありますか、それともまったく異なるアプローチですか?
- NEAREST_PRIORITY = 優先度の高い最も近いレコードの優先度を決定
- 優先度 > NEAREST_PRIORITY のすべてのレコードの優先度を 1 ずつ上げます
- 現在のレコードの優先度を設定 = NEAREST_PRIORITY+1
NEAREST_PRIORITY を持つ複数のレコードがある場合、これは実際にはうまく機能しません...
長い投稿とアイデアを読んでくれてありがとう。