2013-02-09 4 views
0

В настоящее время я использую класс EZSQL в php для запроса базы данных MySQL. Я пытаюсь захватить случайные записи из базы данных, но я хотел бы знать, могу ли я рандомизировать результаты через php вместо самого sql-запроса. Запрос в настоящее время выглядит следующим образом:Рандомизация результатов базы данных с использованием php вместо запроса mysql

$results = $db->get_results("SELECT * FROM table ORDER BY RAND()"); 

foreach($results AS $result) 
{ 

//code here 

} 

Вместо я мог просто взять результаты из БД затем рандомизации его через PHP? Если да, то как я могу это сделать?

+2

[ 'shuffle'] (http://php.net/manual/en/function.shuffle.php) –

+0

Почему вы хотите это сделать? Рандомизация, вероятно, быстрее в базе данных. –

+0

Если будет задействован «LIMIT», вы вернетесь к SQL «RAND()», который отлично работает. Если вы считаете, что «RAND()» является проблемой для больших баз данных (не верно), вам придется использовать «LIMIT», чтобы не выбирать миллиарды строк. Итак, у вас есть это: 'ORDER BY RAND()' - ваш единственный выбор. –

ответ

0

Согласитесь с @shuffle, но если вы действительно хотите использовать PHP, я бы не использовал foreach; Вместо этого, взять $ размер результаты, получить случайное число между 0 и длиной-1, и использовать его получают п-й элемент из массива