sql >> Databáze >  >> RDS >> Mysql

jak získat pozici seřazených řádků pomocí mysql a php

Existují dva způsoby, jak to udělat:

Metoda 1:

SET @i = 0;

SELECT * FROM 
scores s1 INNER JOIN (SELECT *, @i := @i + 1 AS rank FROM scores ORDER BY score DESC) AS s2 USING (id);

Metoda 2:

SELECT *, (SELECT COUNT(1) AS num FROM scores WHERE scores.score > s1.score) + 1 AS rank FROM scores AS s1
ORDER BY rank asc


  1. MySql Logical Order By

  2. Názvy dynamických proměnných v MySQL

  3. získání Ztráta připojení k mysql při použití mysqldump i s parametrem max_allowed_packet

  4. SQL:jak mohu seřadit podle pole, pokud není null, jinak použijte jiné pole