非常に、間違いなく、2番目の方法を使用してください...I.E。レコードを循環して更新します。
一時テーブルを使用しない簡単な理由:
- MySQL一時テーブルを使用している場合、それは現在のセッションに表示されます。持続的接続を使用している場合、これは実際には複数のセッションで共有される可能性があります。スクリプトを同時に2回実行すると、データが破損する可能性があります。同じことが実際のテーブルの作成にも当てはまります。
あなたがすべきことは:
- すべてのデータを取得するか、少なくとも論理的なバッチで取得します(この場合、果物などの特定の「コレクション」の行のみを取得することで取得できます)
- 行を並べ替えます(これは以前にSQLクエリ内で実行されていた可能性もあります)
- 提案したとおりに、カウンターを使用して行を更新します