Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment sélectionner chaque nième ligne dans mySQL à partir de n

Voici une approche pour obtenir le jeu de résultats renvoyé par MySQL. (Mais il pourrait être plus facile de simplement renvoyer toutes les lignes et d'obtenir une ligne sur trois dans l'application). Mais cela peut être fait dans MySQL assez facilement. Notez que votre requête d'origine est entourée de parenthèses (en tant que vue en ligne) 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

Cela renverra toutes les trois rangées, en commençant par la première rangée. Pour obtenir chaque troisième ligne en commençant par la 2e et la 3e ligne, remplacez le littéral = 1 dans la clause HAVING avec = 2 ou = 3 (respectivement).