Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL Round Robin Select

Ако разбирам правилно какво имаш предвид под кръгова система, тогава можеш да направиш нещо от типа на

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;

Съхранявайте (в сесия, файл, друга таблица и т.н.) и предайте на вашата заявка последния показан id или 0 за първоначалната заявка.

Това ще ви даде следващия ред или отново първия, ако сте достигнали последния. Тази заявка ще продължи да работи, ако имате пропуски в id с.

Ето SQLPiddle демонстрация



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. BIGINT Грешка извън обхвата след MySQL 5.5

  2. отношение много към много в доктрината

  3. Кое е най-доброто решение за сигурност при инжектиране на SQL в MySQL?

  4. SQLAlchemy чрез Paramiko SSH

  5. sql за изчисляване на точки за игри