Você pode fazer algo do tipo: select * from tabela limit 100,9; ele descarta as 100 primeiras linhas e pega 9 registros. Voce poderia randomizar o primeiro numero multiplicando o numero de linhas da tabela por um rand() depois montar uma Query dinamica e executar. Ficaria +- assim: set @nlinhastabela = (select count(*) form tabela); set @descarta = round(@nlinhastabela-@nlinhasdesejadas * rand()); set @query = concat(' select * from tabela limit ',@descarta,',',@nlinhasdesejadas ); prepare query from @query; execute query;