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

Hvordan henter jeg hver N'te post fra en tabel?

Du kan lave en varierende offset-forespørgsel i en enkelt forespørgsel som denne

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;

Dette vil tilføje et unikt heltals-id til hver række via @row-variablen. Så vil den vælge en række hver anden 880 via modulo-operatoren og den variabel. En orden efter klausul er påkrævet for at få gentagelig adfærd, ellers ville resultatet være tilfældigt.



  1. Barman Cloud – Del 1:WAL Archive

  2. GRUPPER VED at have MAX-dato

  3. Kopier tabel til en anden database på en anden SQL Server

  4. MySQL-læsning fra stream mislykkedes