sql >> Base de Datos >  >> RDS >> Mysql

Cómo seleccionar cada enésima fila en mySQL a partir de n

Aquí hay un enfoque para obtener el conjunto de resultados devuelto por MySQL. (Pero podría ser más fácil devolver todas las filas y obtener cada tercera fila dentro de la aplicación). Pero se puede hacer en MySQL con bastante facilidad. Tenga en cuenta que su consulta original está envuelta entre paréntesis (como una vista en línea) con alias como 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

Eso regresará cada tercera fila, comenzando con la primera fila. Para que cada tercera fila comience con la segunda y la tercera fila, reemplace el literal = 1 en la cláusula HAVING con = 2 o = 3 (respectivamente).