Я пытаюсь написать скрипт php / mysql, который вытащит 5 случайных записей из БД и покажет их. В настоящий момент я использую следующее, чтобы вытащить одну запись и отобразить ее в модуле, но я не уверен, как вытащить 5 за раз. В общей сложности у меня будет около 200-300 записей.
В настоящее время я использую следующий код, чтобы вытащить одну запись случайно:
<?php $result = mysql_query("SELECT * FROM `zgjzb_chronoforms_data_submitbusiness` ORDER BY RAND() LIMIT 0,4;"); $row = mysql_fetch_array($result); ?>
Вы не хотите использовать ORDER BY RAND()
. MySQL должен создать временную таблицу. Если таблица имеет уникальный столбец идентификатора, что-то вроде этого намного лучше:
SELECT * FROM `zgjzb_chronoforms_data_submitbusiness` WHERE id >= (SELECT FLOOR( MAX(id) * RAND()) FROM `table` ) ORDER BY id LIMIT 1;
См. Это сообщение в блоге для других подходов, которые хорошо работают в php.