Делаю скрипт цитатника.. наткнулся на проблему вывода случайно записи из БД

Spear

почемучка
Делаю скрипт цитатника.. наткнулся на проблему вывода случайно записи из БД

Здравствуйте,
я делаю примерно такой цитатник:

есть таблица бд, в ней всего 5 полей. Основное поле - text, в котором идет собственно текст цитаты или интересного факта.
Столкнулся с тем, что не знаю каквывести из базы данных случайное поле :(
структура таблицы такова
id(int) | quote (text) | xxx | xxx2 | xxx3
(поля xxx - завязаны с некоторыми разделами и\или статьями на сайте.. вообщем просто цитатник довольно навороченный, а не протсо текст).
Вот...короче говоря проблема в том, что немогу вытащить случайную цитату :(
И причем нужно это делать в один запрос, чтобы не создавать илшней нагрузки на бд на ровном месте (если бы в два я бы делал так - сначала считывал кол-во цитат, потом бы делал $randomQuote = rand (1, $totalQuotes) - тоесть случайное АйДи цитаты в базе. И вторым запросом бы вытаскивал where id='$randomQuote')
Но такой вариант не подходит.
Хотел узнать - может быть можно как-то все это сделать проще? Может даже в мускуле есть функция "взять случайное поле".. ну или вроде того.
Буду очень благодарен за помощь... сам уже час точно сижу - незнаю как сделать.. хотя казалось бы - что может быть проще? :confused:
 

Spear

почемучка
Opik
Это сделает сортировку по случайному полю? Тоесть если всего 5 полей то есть всего 5 вариантов выбора? Или это выбирает случайную запись?
 

Opik

Новичок
случайную сортировку
случайную запись так:
[sql]SELECT *
FROM `table`
ORDER BY RAND( )
LIMIT 1[/sql]
 

Spear

почемучка
Opik
Спасибо, работает! Я почему-то думал что будет протсо сортироваться по случайному полю :) А выбирается случайная запись! THANKS!!!!!!!!!
 

tristram

Guest
Spear
дело в том что RAND() взимается не в момент отправки запроса, а при каждом действии сортировки. т.е. субд понимает что от нее хотят =)
 

SiMM

Новичок
И всё же быстрее может оказаться решение в два запроса.
SELECT COUNT(*) ... + SELECT * ... LIMIT $rand,1, где $rand вычисляется на PHP
 
Сверху