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;