Выбока случайного ряда (MySQL random)
Для выборки случайного ряда из таблицы можно воспользоваться запросом...
Для выборки случайного ряда из таблицы можно воспользоваться запросом:
SELECT * FROM table ORDER BY RAND() LIMIT 1;
Однако для лучшей производительности при большом количестве рядов и наличии первичного индекса по полю id который идет БЕЗ ПРОПУСКОВ, в целях оптимизации производительности лучше воспользоваться двумя выборками с генерацией случайного числа на стороне PHP скрипта:
$result = mysql_query('SELECT MAX(id) FROM table'); $max_id = mysql_result($result, 0); $random_id = mt_rand(1, $max_id); $row = mysql_query('SELECT * FROM table WHERE id = '.$random_id);
Хочу отметить, что таблиц без удаленных рядов, а значит с наличием id без пропусков не так и много, поэтому данный пример не претендует на панацею.