Случайная строка в таблице MySQL

Материал из Викиреальностя
Перейти к: навигация, поиск

Случайная строка в таблице MySQL — задача выборки случайной строки из таблицы MySQL. Характеризуется потенциально высокой вычислительной сложностью.

[править] Хороший вариант

Используются собственные переменные:

SET @random := CEIL(RAND() * (SELECT MAX(primary_key) FROM table));
SELECT * FROM table WHERE primary_key = @random;

[править] Плохие варианты

SELECT * FROM table ORDER BY RAND() LIMIT 1;

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

Случайная строка в таблице MySQL относится к теме «Программирование»   ±