ホームページ >データベース >mysql チュートリアル >SQL での単一の更新に基づいて複数のレコードを効率的に再配置するにはどうすればよいですか?
注文を表す「位置」フィールドを持つ食品のリストを含むデータベース テーブル内リスト上では、単一のレコードへの変更に基づいて順序を再配置する必要が生じることがよくあります。元の投稿者が提供したクエリには、データ抽出、JavaScript での操作、複数のデータベース更新を含む面倒な複数の手順のプロセスが含まれています。
ただし、単一のクエリで問題を解決するより効率的なアプローチは次のとおりです。
<code class="sql">UPDATE my_table SET position = position * 10;</code>
このクエリは、テーブル内のすべてのレコードの位置を 10 倍し、位置間に十分なギャップを作成します。その後、次のクエリを使用して、ターゲット レコードを簡単に更新して「Pears」を目的の位置に移動できます。
<code class="sql">UPDATE my_table SET position = 15 WHERE listId=1 AND name = 'Pears';</code>
後続の並べ替えにより時間の経過とともにギャップが消えるという懸念に対処するには、前に提供したクエリを定期的に実行して、位置を更新し、必要な間隔を維持できます。この効率的な単一クエリのアプローチを使用すると、食品の順序を並べ替えるのが簡単な作業になります。
以上がSQL での単一の更新に基づいて複数のレコードを効率的に再配置するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。