SQL での単一レコードの変更に基づいた複数のレコードの変更
質問:
複数のレコードの位置を更新する方法
解決策:
この問題に対処するには、複数のレコードを変更する複雑なクエリが必要になる場合があります。ただし、データ構造を簡単に調整することで、プロセスを簡素化し、目的のレコードのみを変更する単一のクエリで実行できます。
この例では、テーブルに「Position」フィールドが含まれています。 「ListID」で識別されるリスト内の項目を並べ替えます。項目 (例: 「洋梨」を「チップス」の前に移動) を移動するには、その位置を目的の位置に設定し、その間にあるすべての項目の位置を調整する必要があります。
私たちの目標は、クエリに依存せずに単一のクエリを実現することです。
その後、次のクエリを使用できます。
<code class="sql">UPDATE my_table SET position = 15 WHERE listId=1 AND name = 'Pears';</code>
将来、並べ替えが繰り返されることでアイテム間にギャップが生じたとします。この問題を解決するには、次のクエリを定期的に実行します。
<code class="sql">UPDATE my_table SET position = position * 10;</code>
ポジションの値を 10 倍にすることで、順序情報を失うことなく将来の調整に対応できる十分なギャップが生まれます。
以上が単一レコードの変更に基づいて SQL で複数のレコードを更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。