Mysql
 sql >> Database >  >> RDS >> Mysql

MySql:trova il numero di riga di un record specifico

Il mio scopo è risolto :)Quindi, pubblico qui se qualcuno lo trova adatto:

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.

Se hai bisogno anche del numero di pagina che può essere utilizzato per determinare il valore di offset per l'impaginazione, cambia semplicemente la prima riga sopra in questo modo:

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

Avrai pageNumber==0 per la pagina 1 e pageNumber==1 per la pagina 2 e così via.....