sql >> Databasteknik >  >> RDS >> Mysql

MySQL Round Robin Select

Om jag förstår rätt vad du menar med round-robin så kan du göra något i stil med

SELECT id, url
  FROM urls u CROSS JOIN
(
  SELECT MIN(id) min_id, MAX(id) max_id
    FROM urls
) m 
 WHERE id > IF(? >= max_id, 0, ?) -- last shown id goes here instead of placeholders
 ORDER BY id
 LIMIT 1;

Lagra (i session, fil, en annan tabell, etc.) och skicka till din fråga det senast visade id eller 0 för den första frågan.

Detta ger dig nästa rad eller första igen om du nådde den sista. Den här frågan fungerar fortfarande om du har luckor i id s.

Här är en SQLFiddle demo



  1. MySQL, frågan är för långsam, hur förbättrar jag den?

  2. Bra databasdesign, varierande antal attribut

  3. ORDER BY FIELD , given fältordning kommer äntligen

  4. java.lang.ClassNotFoundException:org.postgresql.Driver, Android