Os presento una consulta muy útil a la hora de sacar la posición de una fila en una consulta de MySQL
Para ello es simple, se toma la siguiente estructura:
SELECT 
a1.campo1, a1.campo2, a1.campo3,..., a1.campoN, a1.posicion
FROM ( 
SELECT a2.campo1,..., a2.campoN, @rownum := @rownum +1 AS posicion
FROM TABLA a2
JOIN ( SELECT @rownum := 0) r
ORDER BY a2,campoJ 
) a1
WHERE a1.campoI = 'valor'

dónde:
  • a1 es el alias del conjunto de datos que incluye el posicion
  • a2 es el alias de la tabla de la que se quieren obtener los datos
  • r es el alias que nos indica el conteo
  • la expresión "WHERE a1.campoI = 'valor'" se puede omitir, se usa para filtrar el conjunto de valores retornados con la posición que corresponda.

El comentario será validado antes de mostrarse.