Общие > Базы данных
Выбрать 1 случайную запись.
Меняздесьдавнонет:
Боже!
И ЭТО он называет НЕ корявым.
В этом мире что-то не так.
Саша.
Сделай так
$num=mt_rand(1, mysql_result(mysql_query("SELECT count(*) FROM anek"), 0));
$text_anek=mysql_result(mysql_query("SELECT anek FROM anek LIMIT $num,1), 0);
И избавь свою базу от грубого надругательства, извращенец.
(я оставлю за скобками, как ты будешь привязывать, к примеру голосование, к дропнутым id)
AlieN:
--- Цитировать ---SELECT anek FROM anek ORDER BY RAND() LIMIT 1
Но мне кажется это коряво
--- Конец цитаты ---
А чего здесь корявого? :)
Меняздесьдавнонет:
AlieN
Не коряво, но работает действительно, медленно.
У меня 0,1 сек на базе в 500 записей исполнялся запрос.
А приведенные выше - 0,00
Alexandr:
--- Цитировать ---$num=mt_rand(1, mysql_result(mysql_query("SELECT count(*) FROM anek"), 0));
$text_anek=mysql_result(mysql_query("SELECT anek FROM anek LIMIT $num,1), 0);
--- Конец цитаты ---
Ну я так-то в своих рассуждениях над этим и остановился.
rembo:
В данном случае по моему RomikChef прав
--- Цитировать ---И как можно называть кривой конструкцию, которая была специально именно для таких случаев, введена в язык?
--- Конец цитаты ---
А это я вычитал в документации к мускулу:
In MySQL Version 3.23, you can, however, do: `SELECT *
FROM table_name ORDER BY RAND()\'
This is useful to get a random sample of a set `SELECT * FROM
table1,table2 WHERE a=b AND c
Навигация
Перейти к полной версии