Rumah > Artikel > pangkalan data > Bagaimana untuk Menyusun Semula Rekod dalam Jadual dengan Pertanyaan SQL Tunggal?
Menyusun Semula Rekod dengan Satu Pertanyaan SQL
Dalam jadual bahan makanan dengan medan "Kedudukan" untuk memesan penampilan mereka, satu Pertanyaan SQL boleh mengemas kini berbilang rekod berdasarkan perubahan kepada satu rekod. Ini amat berguna untuk menyusun semula item dalam senarai tertentu.
Andaikan kita mempunyai jadual seperti ini:
id | listID | name | position |
---|---|---|---|
1 | 1 | cheese | 0 |
2 | 1 | chips | 1 |
3 | 1 | bacon | 2 |
4 | 1 | apples | 3 |
5 | 1 | pears | 4 |
6 | 1 | pie | 5 |
Untuk menggerakkan pear sebelum cip, kita boleh menambah kedudukan semua item antara mereka dengan 1.
Walau bagaimanapun, kebanyakan penyelesaian melibatkan berbilang pertanyaan, yang boleh menjadi tidak cekap. Sebaliknya, satu pertanyaan boleh digunakan untuk menyusun semula rekod:
UPDATE my_table SET position = position + CASE WHEN name = 'pears' THEN -3 ELSE 0 END WHERE listID = 1 AND position BETWEEN 1 AND 4;
Formula ini memastikan pear bergerak ke kedudukan 1 dan semua item antara pear dan kerepek ditambah dengan sewajarnya.
Kepada susun semula mana-mana item, cuma gantikan 'pear' dengan nama item yang hendak dialihkan dan laraskan perbezaan mengikut keperluan.
Atas ialah kandungan terperinci Bagaimana untuk Menyusun Semula Rekod dalam Jadual dengan Pertanyaan SQL Tunggal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!