Как запросить случайные строки?


person sibidiba    schedule 01.03.2010    source источник
comment
Дубликат: stackoverflow.com/questions/1823306/   -  person OMG Ponies    schedule 01.03.2010


Ответы (1)


Редактировать: Как указали OMG Ponies: Это вообще не масштабируется. Спасибо, OMG.

Попробуйте использовать

ORDER BY RAND()

So...

SELECT * FROM `table` ORDER BY RAND() LIMIT 1
SELECT * FROM `table` ORDER BY RAND() LIMIT n
SELECT * FROM `table` ORDER BY RAND()
person jasonbar    schedule 01.03.2010
comment
@OMG Пони: Нет, это не так. Однако он удобочитаем и возвращает случайные строки. Мне было бы интересно увидеть результаты тестов (ваша ссылка в другом вопросе не работает). - person jasonbar; 01.03.2010
comment
Ссылка: dasprids.de/blog/ 07.06.2008/ - person OMG Ponies; 01.03.2010
comment
@jasonbar: НП, повезло, что он все еще был в кеше моего браузера. - person OMG Ponies; 01.03.2010
comment
Уловка с подходом в ссылке заключается в том, что он предполагает, что вы используете целочисленный первичный ключ. - person Thomas; 01.03.2010
comment
Кстати, я понимаю, что OP заявил, что PK был целым числом, однако лучшим решением было бы то, которое обобщается, чтобы не зависеть от того, что PK является одним столбцом и имеет целое число. - person Thomas; 01.03.2010