{% else-1 %}
Обновить | Подписаться | Поднять тему
Чтобы выполнить действие авторизируйтесь или пройдите регистрацию на сайте.
1.
Flash * 0.02
[автор] (10 фев 2013, 17:33) [0/0] [0] [отв] [спам] [под] +1 | -1

И так вопрос. Есть таблица 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
Чтобы писать сообщения авторизируйтесь или пройдите регистрацию на сайте.
Подписаны: 1
Скачать тему | Файлы темы | Фильтр сообщений