Mysql — выбор случайной строки

Для выбора случайной строки из mysql можно использовать следующий запрос:

SELECT * FROM Table ORDER BY RAND()

Для выбора нескольких случайных строк подойдет следующий запрос:

SELECT * FROM table ORDER BY RAND() LIMIT $kolichestvo



PS: при таблицах большого размера данный запрос не самый эффективный.

В процессе выполнения этого запроса MySQL записывает во временную таблицу все строки исходной таблицы, с одним новым полем, в которое записываются результаты функции RAND () — т.е. набор произвольных значений. Затем эта временная таблица сортируется filesort по добавленному полю с произвольными значениями и далее выбираются первые 10 записей.

Mysql — выбор случайной строки: 1 комментарий

  1. Levik

    Альтернативный вариант выбора случайной строки. Там же логика работы и пояснения.
    http://www.titov.net/2005/09/21/do-not-use-order-by-rand-or-how-to-get-random-rows-from-table/

Добавить комментарий

Ваш адрес email не будет опубликован.