Bagaimana untuk Mendapatkan Kedudukan Pengguna dengan Cekap daripada Jadual Skor Tidak Tersusun dalam PHP dan MySQL?

Barbara Streisand
Lepaskan: 2024-11-01 22:44:29
asal
385 orang telah melayarinya

How to Efficiently Retrieve User Rank from an Unordered Scores Table in PHP and MySQL?

Mengambil semula Kedudukan Pengguna daripada Jadual Skor Tidak Tersusun dalam PHP dan MySQL

Dalam senario di mana anda mempunyai jadual skor dengan rekod tidak tersusun, menentukan pangkat pengguna boleh menjadi keperluan biasa. Semasa menggelungkan semua baris dan mengisihnya mengikut skor untuk mengira kedudukan adalah pilihan yang berdaya maju, pendekatan yang lebih cekap wujud menggunakan pernyataan SQL.

Penyelesaian Penyata SQL

Untuk mendapatkan semula kedudukan pengguna tanpa gelung, anda boleh menggunakan pertanyaan SQL berikut:

<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>
Salin selepas log masuk

Pertanyaan ini menggunakan subkueri untuk mengira bilangan baris dalam jadual 'skor' yang skornya lebih besar daripada semasa markah baris. Hasil daripada subkueri ini, yang mewakili bilangan pengguna dengan skor yang lebih tinggi, kemudiannya dinaikkan sebanyak 1 untuk menentukan kedudukan.

Contoh Penggunaan

Dengan mengandaikan 'skor ' jadual dengan lajur berikut:

  • id (kunci utama)
  • rentetan_sahkan (rentetan)
  • initial (rentetan)
  • skor (integer )

Untuk mendapatkan semula kedudukan pengguna dengan huruf awalan 'ABC' dan markah 100, laksanakan kod PHP berikut:

<code class="php">$query = "SELECT initials, (
  SELECT COUNT(*)
  FROM scores AS s2
  WHERE s2.score > s1.score
)+1 AS rank
FROM scores AS s1
WHERE initials = 'ABC' AND score = 100";
$result = $db->query($query);
$row = $result->fetch_assoc();
echo "Rank: " . $row['rank'];</code>
Salin selepas log masuk

Kod ini akan mengeluarkan pangkat pengguna , yang dalam kes ini akan menjadi "101 daripada 1000 pemain" jika terdapat sejumlah 1000 rekod dalam jadual.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Kedudukan Pengguna dengan Cekap daripada Jadual Skor Tidak Tersusun dalam PHP dan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!