Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Seleção Redonda do MySQL


Se eu entendi corretamente o que você quer dizer com round-robin, então você pode fazer algo ao longo das linhas 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;

Armazene (em sessão, arquivo, outra tabela, etc.) e passe para sua consulta o último id mostrado ou 0 para a consulta inicial.

Isso lhe dará a próxima linha ou a primeira novamente se você alcançou a última. Esta consulta ainda funcionará se você tiver lacunas em id s.

Aqui está um SQLFiddle demonstração