Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
select ... order by псевдо-rand (sergius) 29/01/2013 - 17:15:30
      Re: select ... order by псевдо-rand (Akina) 29/01/2013 - 18:04:19

> Original message text:
> From: sergius - 29/01/2013 - 17:15:30
> Subject:select ... order by псевдо-rand
> -----------------
> Нужно сделать выборку записей из таблицы в псевдо-случайном порядке. Объясню, что в данном случае означет псевдо-случайным: несмотря на то, что строки в результате выборки должны быть перемешаны, результат такого запроса должен быть всегда одинаковым. То есть выводить строки в случайном порядке, но этот порядок задаётся какой-то константой, меняя которую можно менять этот порядок (случайным образом), но если константа неизменна, то каждый раз результат должен быть одинаковым.
>
> Аналогия:
> 1. создать в таблице дополнительное поле
> 2. заполнить его для всех строк таблицы случайным содержимым
> N. делать запросы SELECT ... ORDER BY это поле
> ...
> При необходимости сменить результат выборки повторить пункт 2.
>
> Может быть можно как-то обойтись без дополнительного поля и сделать проще?
>


From: Akina - 29/01/2013 - 18:04:19
Subject:select ... order by псевдо-rand
-----------------
При сравнительно небольшом количестве записей в таблице и наличии в таблице неизменного (например, ключевого) поля типа INTEGER можно в качестве псевдослучайного, но постоянного при последовательных выборках, генератора использовать order by rand(id+N), где N - номер псевдослучайной последовательности. Но надо следить, чтобы id+N не вызывал переполнения.


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
42099



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |