sql >> Database >  >> RDS >> Mysql

MySQL Round Robin Select

Als ik goed begrijp wat je bedoelt met round-robin, dan kun je iets doen in de trant van

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;

Bewaar (in sessie, bestand, een andere tabel, enz.) en geef de laatst getoonde id door aan uw zoekopdracht of 0 voor de eerste zoekopdracht.

Dit geeft je de volgende rij of weer de eerste als je de laatste hebt bereikt. Deze zoekopdracht werkt nog steeds als je gaten hebt in id v.

Hier is een SQLFiddle demo



  1. MySQL wil niet starten

  2. Moet ik NULL of een lege tekenreeks gebruiken om geen gegevens in de tabelkolom weer te geven?

  3. Demystificerende CXPACKET- en CXCONSUMER-wachttypen in SQL Server

  4. Selecteer alleen unieke rij/record in mysql