私はそのような1つのテーブルを持っています
ItemsTable
item_id, cat_id, sort
----------------------
1 1 1
20 1 2
15 1 3
12 1 4
11 1 5
....
1521 1 1991
私のプログラムでは、ページが表示されるたびに、ソート番号に基づいて次のアイテムを取得します。たとえば、先ほど sort = 2 を表示したとします。次にページにアイテム sort = 3 が表示されるとします (おそらく、sort は不適切な名前です)。
私がやりたいことは、最後のアイテム (並べ替え = 1991) を取得したら、そのテーブル内のアイテムを再更新し、新しい並べ替え順序を再割り当てしたいということです。
このような:
ItemsTable
item_id, cat_id, sort
----------------------
35 1 1
7 1 2
2 1 3
1521 1 4
700 1 5
....
5 1 1991
今、私の心は、cat_id = 1 で結果をランダムにソートするレコードを選択するスクリプトを作成する必要があると考えています。次に、データベースを 1001 回更新するループを PHP で作成する必要があります。これは私の考えでは効率的ではないようです。
より良い代替案を提供できますか?MySQL でこれを行う最も効率的な方法は何ですか?