Sering kali Anda perlu menghitung peringkat di MySQL. Anda dapat memesan dengan nomor atau teks tetapi tidak dapat menghitung peringkat di MySQL dengan mudah. Berikut kueri yang dapat Anda gunakan. Ganti saja nama tabel skor dan nama kolom id, skor.
Menghitung peringkat di MySQL berdasarkan nilai yang meningkat
Contoh:
CREATE TABLE score (id int, score int); INSERT INTO scores VALUES (1, 35),(2, 10),(3,30),(4,22),(5,20),(6,18),(7,36); Scores: +----+------+ | id | score| +----+------+ | 1 | 35 | | 2 | 10 | | 3 | 30 | | 4 | 22 | | 5 | 20 | | 6 | 18 | | 7 | 36 | +----+------+
Kami menggunakan variabel peringkat, seperti berikut:
SELECT id,score, @curRank := @curRank + 1 AS rank FROM scores p, (SELECT @curRank := 0) r ORDER BY score;
(SELECT @curRank := 0)
part memungkinkan inisialisasi variabel tanpa memerlukan perintah SET terpisah.
Result: +----+------+------+ | id | score| rank | +----+------+------+ | 2 | 10 | 1 | | 6 | 18 | 2 | | 5 | 20 | 3 | | 4 | 22 | 4 | | 3 | 30 | 5 | | 1 | 35 | 6 | | 7 | 36 | 7 | +----+------+------+ 7 rows in set (0.02 sec)
Menghitung peringkat di MySQL berdasarkan penurunan nilai
Jika Anda ingin menghitung peringkat di MySQL berdasarkan urutan penurunan skor, tambahkan saja kata kunci DESC dalam kueri.
SELECT id,score, @curRank := @curRank + 1 AS rank FROM scores p, (SELECT @curRank := 0) r ORDER BY score DESC;
Hasil: