sql >> Databasteknik >  >> RDS >> Mysql

MySql:Hitta radnummer för specifik post

Mitt syfte är löst:)Så, jag skriver här om någon finner det lämpligt:

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.

Om du också behöver sidnumret som kan användas för att bestämma offsetvärdet för paginering, ändra bara den första raden ovan så här:

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

Du kommer att ha pageNumber==0 för sida 1, och pageNumber==1 för sida 2 och så vidare.....



  1. Infoga data och ställ in främmande nycklar med Postgres

  2. Optimerad SQL för trädstrukturer

  3. oracle blob textsökning

  4. Hämta den aktuella tidszonen för servern i SQL Server (T-SQL)