あなたの質問には、特に変更が以下に基づいている場合に、単一のクエリで複数のデータベース レコードを更新することが含まれています。単一のレコードの変更。あなたの場合、特定の項目の移動に基づいてリスト内の項目の順序を調整したいと考えています。
SQL を使用してこれに取り組む方法はいくつかあります。あなたが言及した 1 つの方法には、複数のクエリを使用することが含まれます。まず、関連するレコードを選択し、次にプログラミング コードを使用してデータを変更し、レコードを更新します。ただし、前述のとおり、このアプローチは同期的な性質と複数のクエリが発生する可能性があるため、理想的ではありません。
別の SQL ベースのソリューションは、次のステートメントを活用することです。
<code class="sql">UPDATE my_table SET position = position * 10;</code>
Thisレコードを簡単に更新できるようにデータを変更します。項目をリスト内で上下に移動するには、それに応じてその項目の位置フィールドを更新します。たとえば、Pears を 2 番目のアイテムにするには、次のようにします。
<code class="sql">UPDATE my_table SET position = 15 WHERE listId=1 AND name = 'Pears';</code>
これにより、Pears に前の値の 10 倍の位置が割り当てられます。ただし、変更を続けると、項目の位置間にギャップが発生する可能性があります。これを防ぐには、次のクエリを定期的に実行します。
<code class="sql">UPDATE my_table SET position = position * 10;</code>
これにより、各項目の間に常に 9 つの使用可能な位置が確保されます。これらの SQL ステートメントを実装すると、単一のクエリで複数のレコードを効率的に更新でき、リスト内の項目を並べ替えるプロセスが簡素化されます。
以上がSQL での単一レコードの変更に基づいて複数のレコードを効率的に更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。