Pokud správně chápu, co máte na mysli pod pojmem round-robin, můžete udělat něco ve smyslu
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;
Uložte (v relaci, souboru, jiné tabulce atd.) a předejte vašemu dotazu naposledy zobrazené id
nebo 0 pro počáteční dotaz.
Tím získáte další řádek nebo znovu první, pokud jste dosáhli posledního. Tento dotaz bude stále fungovat, pokud máte mezery v id
s.
Zde je SQLFiddle demo