Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как взять из базы несколько случайных строк
 
 автор: kosta_in_net   (12.07.2009 в 13:36)   письмо автору
 
 

нужно вывести несколько случайных строк. Не могу придумать, как бы это сделать чистым SQL. Пока приходит в голову только вариант:
взять идентивикаторы всех строк (SELECT id FROM table), сгнерировать несколько случайных (не повторяющихся) чисел в пределах величины полученного массива (числа не превосходят число элементов массива). Затем получить id из массива с ключем, равным этим случайным числам. А после этого выполнить запросы именно этих id:
SELECT * FROM table WHERE id=$element1 OR...
но тут идут 2 запроса: 1 подготовительный, потом работа ПХП и уже после нее собственно выборка. Можно ли как-то выбрать чистыс SQL? Может есть какие-то рандомы в скуэле?

  Ответить  
 
 автор: Trianon   (12.07.2009 в 14:07)   письмо автору
 
   для: kosta_in_net   (12.07.2009 в 13:36)
 

В принципе SQL такие задачи решать не обязан.

Но для ширпотреба часто (хотя и не всегда) достаточно костыля от MySQL:
ORDER BY RAND()
LIMIT n

  Ответить  
 
 автор: kosta_in_net   (12.07.2009 в 14:22)   письмо автору
 
   для: Trianon   (12.07.2009 в 14:07)
 

любопытно, попробую.
Попробовал. В доках по скуэлю говорится не юзать такого, чтоб не грузить сервак, но мне нужно 3 случайных элемента, так что, переживет. Зато код очень лаконичен :)
Пасиба!

  Ответить  
 
 автор: kosta_in_net   (12.07.2009 в 15:46)   письмо автору
 
   для: Trianon   (12.07.2009 в 14:07)
 

если ты все знаешь, чё тут тусуешся? Я иногда ищу ответы на свои вопросы, паралельно отвечая на то, что удосужусь прочесть. А по моим вопросам наиболее разумные ответы у тебя. Такое ощущение, что ты знаешь все. А раз так, чё тебе тут делать? Почему не тратишь время более экономически целесообразным путем? Или есть еще трудности и для тебя?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования