{% else-1 %}
Flash * 0.02
(10 фев 2013, 17:33) (0/0) [0]
И так вопрос. Есть таблица test состоящая из id time text type
Нужен случайный вывод из этой таблицы одной строки
Про вариант SELECT * FROM `test` WHERE `type` = \'1\' ORDER BY RAND() LIMIT 1; пишут что он грузит сайт
Для ускорения предлагается такой вариант

SELECT `test`.* FROM (
SELECT id FROM `test`
WHERE `type` = \'1\'
ORDER BY RAND()
LIMIT 1
) as ids JOIN `test` ON `test`.id = ids.id;


Остановился на варианте

$result = mysql_query(\"SELECT MAX(id) FROM `test` WHERE `type` = \'1\'\"*;
$max_id = mysql_result($result, 0);
$rand = mt_rand(1, ($max_id - 1));
SELECT * FROM `test` WHERE `id` >= \".$rand.\" LIMIT 1;
Что посоветуете? Какой вариант лучше?*
  • 1 из 1