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

MySQL Round Robin Select

Si je comprends bien ce que vous entendez par round-robin, vous pouvez faire quelque chose dans le sens de

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;

Stockez (dans une session, un fichier, une autre table, etc.) et passez à votre requête le dernier id affiché ou 0 pour la requête initiale.

Cela vous donnera la ligne suivante ou la première si vous avez atteint la dernière. Cette requête fonctionnera toujours si vous avez des lacunes dans id s.

Voici un SQLFiddle démo