Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

entradas de classificação na tabela mysql


Não há como calcular a ordem (o que você chama de classificação) de algo sem primeiro classificar a tabela ou armazenar a classificação.

No entanto, se sua tabela estiver indexada corretamente (índice de popularidade), é trivial para o banco de dados classificar isso para que você possa obter sua classificação. Eu sugeriria algo como o seguinte:

Selecione todos, incluindo classificação

SET @rank := 0;
SELECT t.*, @rank := @rank + 1
FROM table t
ORDER BY t.popularity;

Para buscar um item com um "id" específico, você pode simplesmente usar uma subconsulta da seguinte maneira:

Selecione um, incluindo classificação

SET @rank := 0;
SELECT * FROM (
  SELECT t.*, @rank := @rank + 1
  FROM table t
  ORDER BY t.popularity
) t2
WHERE t2.id = 1;