sql >> Database teknologi >  >> RDS >> Mysql

Hvordan får man en rækkerangering?

Den underforespørgselstilgang, som du har set anbefalet, skaleres kvadratisk. http://www. xaprb.com/blog/2006/12/02/how-to-number-rows-in-mysql/ viser en meget mere effektiv tilgang med brugervariable. Her er en uafprøvet tilpasning til dit 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. 2 Autofuldførelse/forslagsindtastningsfelter ved hjælp af jQuery eller Ajax med anden boks baseret på første valg med flere elementer

  2. SQL Server Transaction Log — Del 2

  3. Indsættelse af store objektdata i Salesforce.com fra SQL Server

  4. MySQL INSERT - Kræver feltnavne backtick/accent-afgrænsning?