Выбор из базы рандомом

  • Автор темы Автор темы goacher
  • Дата начала Дата начала
вообще все это обсуждение про сфероконей, пока на "случайность" выборки не налагаются какие-либо требования, там относительно вероятности выпадения отдельных элементов и их последовательностей.

-~{}~ 22.06.10 13:29:

Еще один вариант
 
dimagolov
На каждое условие будет свой порядок записей, естественно.

Касаемо конкретного случая по ссылке такой способ тоже подойдёт, правда придётся запросить для каждого диапазона номера:
[sql]SELECT MIN(ord), MAX(ord) FROM tbl WHERE n BETWEEN 1000 AND 2000[/sql]

-~{}~ 22.06.10 20:53:

Правда и порядок записей должен быть одинаковый как по ord, так и по n.
 
[drunk mode]
Предложу бредовый вариант (пока что не тестил) - все PK из несущей таблицы с данными вынести в heap таблицу, по которой делать ORDER BY RAND(), результаты которого джойнить с основной таблицей, что по замыслу должно привести к сканированию таблицы в памяти сервера, а не на HDD, так как в heap используется формат с фиксированной длиной записи, что дополнительно ускоряет выборки.
[/drunk mode]
 
Сверху