Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menyusun Semula Berbilang Rekod Dengan Cekap Berdasarkan Kemas Kini Tunggal dalam SQL?

Bagaimanakah Saya Boleh Menyusun Semula Berbilang Rekod Dengan Cekap Berdasarkan Kemas Kini Tunggal dalam SQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-06 12:54:031021semak imbas

How Can I Efficiently Rearrange Multiple Records Based on a Single Update in SQL?

Membuat Perubahan kepada Berbilang Rekod Berdasarkan Kemas Kini Rekod Tunggal dengan SQL

Dalam jadual pangkalan data yang mengandungi senarai item makanan dengan medan "Kedudukan" yang mewakili pesanan mereka dalam senarai, keperluan sering timbul untuk menyusun semula pesanan mereka berdasarkan perubahan pada satu rekod. Pertanyaan yang disediakan oleh poster asal melibatkan proses berbilang langkah yang rumit yang melibatkan pengekstrakan data, manipulasi dalam JavaScript dan berbilang kemas kini pangkalan data.

Walau bagaimanapun, pendekatan yang lebih cekap yang menyelesaikan isu dengan satu pertanyaan ialah:

<code class="sql">UPDATE my_table SET position = position * 10;</code>

Pertanyaan ini mendarabkan kedudukan semua rekod dalam jadual dengan 10, mewujudkan jurang yang cukup antara kedudukan. Selepas itu, kemas kini ringkas kepada rekod sasaran untuk mengalihkan "Pear" ke kedudukan yang diingini boleh dicapai dengan mudah dengan pertanyaan berikut:

<code class="sql">UPDATE my_table SET position = 15 WHERE listId=1 AND name = 'Pears';</code>

Untuk menangani sebarang kebimbangan mengenai jurang yang hilang dari semasa ke semasa akibat penyusunan semula yang berikutnya, pertanyaan yang diberikan sebelum ini boleh dilaksanakan secara berkala untuk mengemas kini kedudukan dan mengekalkan jarak yang diperlukan. Menggunakan pendekatan pertanyaan tunggal yang cekap ini, menyusun semula susunan item makanan menjadi tugas yang mudah.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyusun Semula Berbilang Rekod Dengan Cekap Berdasarkan Kemas Kini Tunggal dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn