Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Dapatkan peringkat, berdasarkan skor, dari Database MySql yang tidak diurutkan saat diberi Nama Pengguna

Ini akan menangani peringkat yang memiliki skor yang sama.

SELECT  d.*, c.ranks
FROM
        (
          SELECT    Score, @rank:[email protected]+1 Ranks
          FROM
                  (
                      SELECT  DISTINCT Score 
                      FROM    tableName a
                      ORDER   BY score DESC
                  ) t, (SELECT @rank:= 0) r
        ) c 
        INNER JOIN tableName d
            ON c.score = d.score
// WHERE   d.username = 'Helen'

misalnya

KEY     username    password    score   Ranks
1       Anna        123         5       3
2       Bobby       345         6       2
3       Helen       678         6       2
4       Jon         567         2       4
5       Arthur      ddd         8       1

untuk kinerja yang lebih baik, tambahkan INDEX pada kolom Score ,

ALTER TABLE tableName ADD INDEX (Score)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menghentikan bidang desimal MySQL agar tidak dibulatkan?

  2. Bisakah MySql 5.0 memiliki tampilan tabel yang terletak di server lain?

  3. Manakah dari kumpulan utf8 yang terbaik?

  4. Kesalahan saat mencoba memperbarui tabel waktu di boot musim semi

  5. Bagaimana saya bisa mengubah MariaDB ke MySQL di XAMPP?