Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Uzyskaj rangę, opartą na wyniku, z nieuporządkowanej bazy danych MySql po podaniu nazwy użytkownika

To będzie obsługiwać rangi, które mają ten sam wynik.

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'

na przykład

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

dla lepszej wydajności dodaj INDEX w kolumnie 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. Jak wstawić wiersz bez wartości, aby wszystkie kolumny przyjęły swoją domyślną wartość?

  2. Najlepszy sposób na pobranie ostatnich 4 wierszy z zestawu wyników za pomocą mysql

  3. Tablice zapytań meta WordPress

  4. warunek w kryteriach w yii framework php

  5. Czy MySQL może podzielić kolumnę?