Pendekatan Bukan Berulang untuk Menentukan Kedudukan Pengguna daripada Jadual Markah
Apabila berurusan dengan jadual skor yang tidak diisih, mungkin perlu untuk tentukan kedudukan pengguna antara semua pemain lain. Ini boleh dicapai melalui pelbagai kaedah, tetapi artikel ini memfokuskan pada pendekatan tidak berulang menggunakan SQL.
Memahami Masalah
Masalah memerlukan mendapatkan semula pangkat pengguna daripada jadual yang mengandungi markah dan parap tetapi tanpa sebarang pesanan. Adalah diketahui bahawa menggelung seluruh jadual dan menyusunnya boleh dilaksanakan, tetapi artikel itu meneroka penyelesaian berasaskan SQL yang lebih cekap.
SQL Solution
SQL berikut pernyataan menangani masalah dengan berkesan:
<code class="sql">SELECT s1.initials, ( SELECT COUNT(*) FROM scores AS s2 WHERE s2.score > s1.score )+1 AS rank FROM scores AS s1</code>
Pernyataan ini mencapai langkah-langkah berikut:
Faedah
Pendekatan tidak berulang menawarkan beberapa kelebihan:
Atas ialah kandungan terperinci Bagaimanakah Anda Boleh Menentukan Kedudukan Pengguna dengan Cekap daripada Jadual Skor Tidak Diisih Menggunakan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!