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

Sådan vælger du hver n'te række i mySQL fra n

Her er en fremgangsmåde, for at få resultatsættet returneret af MySQL. (Men det er måske nemmere bare at returnere alle rækkerne og få hver tredje række i appen). Men det kan gøres i MySQL ret nemt. Bemærk, at din oprindelige forespørgsel er pakket ind i parens (som en indlejret visning) kaldet 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

Det vil returnere hver tredje række, begyndende med den første række. For at få hver tredje række, der starter med 2. og 3. række, skal du erstatte den bogstavelige = 1 i HAVING-sætningen med = 2 eller = 3 (henholdsvis).



  1. Konverter valgte kolonneværdier til en anden række ved hjælp af select med samme id part2

  2. Er der et ANSI SQL-alternativ til søgeordet MYSQL LIMIT?

  3. ORA-4031 fejl med Direct NFS

  4. MySQL - Betingede udenlandske nøglebegrænsninger