Hvis jeg forstår rigtigt hvad du mener med round-robin så kan du gøre noget 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;
Gem (i session, fil, en anden tabel osv.) og send det sidst viste id
til din forespørgsel eller 0 for den indledende forespørgsel.
Dette giver dig den næste række eller den første igen, hvis du nåede den sidste. Denne forespørgsel vil stadig fungere, hvis du har huller i id
s.
Her er en SQLFiddle demo