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

dimagolov

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

-~{}~ 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.
 

c0dex

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