Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySql:Finden Sie die Zeilennummer eines bestimmten Datensatzes

Mein Zweck ist gelöst:)Also, ich poste hier, wenn es jemand passend findet:

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.

Benötigen Sie auch die Seitenzahl, die zur Bestimmung des Offset-Wertes für die Paginierung verwendet werden kann, dann ändern Sie einfach die 1. Zeile oben wie folgt:

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

Sie haben pageNumber==0 für Seite 1 und pageNumber==1 für Seite 2 und so weiter.....