sql >> Databasteknik >  >> RDS >> Mysql

Hur hämtar jag var N:te post från en tabell?

Du kan göra en varierande förskjutningsfråga i en enda fråga som denna

select NAME from 
   (select @row:[email protected]+1 as row, t.NAME from 
    tbl t, (select @row := 0) y 
    where alphabet_index='A' order by alphabet_index) z 
where row % 880 = 1;

Detta kommer att lägga till ett unikt heltals-id till varje rad via @row-variabeln. Sedan kommer den att välja en rad varannan 880 via modulo-operatorn och den variabeln. En order by-klausul krävs för att få repeterbart beteende, annars skulle resultatet bli slumpmässigt.



  1. MySQL container kraschar efter /etc/mysql/my.cnf ändring, hur redigerar man tillbaka?

  2. Kombinera resultat från två tabeller till JSON-data

  3. Är MySQL mer resistent mot SQL-injektionsattack än PostgreSQL (under Perl/DBI)?

  4. MySQL:Få kolumner efter värdeprioriteter