sql >> Base de Datos >  >> RDS >> Mysql

MySql:encuentre el número de fila de un registro específico

Mi propósito está resuelto :) Entonces, estoy publicando aquí si alguien lo encuentra adecuado:

SELECT d.myRowSerial
FROM (
    SELECT *, @rownum:[email protected] + 1 AS myRowSerial 
    FROM myTable, (SELECT @rownum:=0) AS nothingButSetInitialValue 
    WHERE 1=1 -- Optional: filter if required, otherwise, omit this line;
    ORDER BY AnyColumn -- Apply the order you like; 
) d
WHERE d.myColumn = 'Anything'; -- If you like to limit it to only
-- for any specific row(s), similar to the *MAIN query.

Si también necesita el número de página que se puede usar para determinar el valor de desplazamiento para la paginación, simplemente cambie la primera línea de arriba de esta manera:

SELECT d.myRowSerial, FLOOR((d.myRowSerial-1)/10) AS pageNumber
-- Say, 10 is per page;

Tendrá pageNumber==0 para la página 1 y pageNumber==1 para la página 2 y así sucesivamente...