ORDER BY RAND() кажется менее чем случайным

У меня довольно простой SQL (MySQL):

SELECT foo FROM bar ORDER BY rank, RAND()

Я замечаю, что когда я обновляю результаты, случайность подозрительно слабая.

В выборке данных на данный момент имеется шесть результатов с одинаковым рангом (целое число ноль). Существует множество тестов на случайность, но вот простой, который можно выполнить вручную: при повторном запуске первый результат должен быть одинаковым в обоих запусках примерно в одной шестой части времени. Этого точно не происходит, ведущий результат один и тот же как минимум в трети случаев.

Мне нужно равномерное распределение по перестановкам. Я не эксперт в статистике, но я уверен, что ORDER BY RAND()должен достичь этого. Что мне не хватает?

В MySQL SELECT rand(), rand()показывает два разных числа, поэтому я не верю объяснению «один раз на запрос»

5
задан Martin Smith 4 April 2012 в 22:19
поделиться