sql >> Databasteknik >  >> RDS >> Mysql

Hur får man en radrankning?

Undersökningsmetoden som du har sett rekommenderas kommer att skalas kvadratiskt. http://www. xaprb.com/blog/2006/12/02/how-to-number-rows-in-mysql/ visar ett mycket mer effektivt tillvägagångssätt med användarvariabler. Här är en oprövad anpassning till ditt problem:

@points := -1; // Should be an impossible value.
@num := 0;

SELECT id
  , points
  , @num := if(@points = points, @num, @num + 1) as point_rank
  , @points := points as dummy
FROM `users`
ORDER BY points desc, id asc;


  1. RAND() Exempel i SQL Server

  2. XAMPP Körs väldigt långsamt med PHP/MySQL

  3. php password_verify fungerar inte med databasen

  4. SQL Visa senaste posten i GROUP BY?