Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como selecionar cada enésima linha no mySQL começando em n


Aqui está uma abordagem para obter o conjunto de resultados retornado pelo MySQL. (Mas pode ser mais fácil retornar todas as linhas e obter cada terceira linha no aplicativo). Mas isso pode ser feito no MySQL com bastante facilidade. Observe que sua consulta original está entre parênteses (como uma visualização em linha) com o alias r .
SELECT r.*
  FROM ( 
         SELECT *
           FROM mbr_qa_questions
          ORDER BY q_votes DESC
       ) r
 CROSS
  JOIN ( SELECT @i := 0 ) s
HAVING ( @i := @i + 1) MOD 3 = 1

Isso retornará a cada terceira linha, começando com a primeira linha. Para obter cada terceira linha começando com a 2ª e 3ª linha, substitua o literal = 1 na cláusula HAVING com = 2 ou = 3 (respectivamente).