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

как да изберете произволни уникални записи при всяко изпълнение на SQL заявката

Тъй като можете да подадете начален параметър към RAND() функция, можете да "пагинирате" произволните резултати, като генерирате начално число преди първата страница.

Примерен код:За първата страница (зависи от езика):

int seed = Math.abs(new Random().nextInt());

SQL заявка:

SELECT url FROM masterurls ORDER BY RAND({seed}) LIMIT 200;

Съхранявайте семето някъде (за уеб-базирани приложения можете да използвате URL параметър или сесия). За следващите страници:

SELECT url FROM masterurls ORDER BY RAND({seed}) LIMIT 200 * {pageNumber}, 200;

Забележка:Сортиране по RAND() е тежка операция, може би е по-добре да съхранявате индексирана колона с хеш кода на URL адреса, след което да използвате базирани на модули или други произволни функции.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Производителност на MySQL:MyISAM срещу InnoDB

  2. Функция за ранг в MySQL

  3. Как да прекъсна операция INSERT в MySql тригер?

  4. Как да намерите липсваща стойност между две Mysql таблици

  5. XAMPP - Грешка:MySQL изключване неочаквано