Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySql :trouver le numéro de ligne d'un enregistrement spécifique

Mon objectif est résolu :) Donc, je poste ici si quelqu'un le trouve approprié :

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 vous avez également besoin du numéro de page qui peut être utilisé pour déterminer la valeur de décalage pour la pagination, modifiez simplement la 1ère ligne ci-dessus comme ceci :

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

Vous aurez pageNumber==0 pour la page 1, et pageNumber==1 pour la page 2 et ainsi de suite.....