Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.29;
Скачать: CL | DM;

Вниз

Сортировка записей в таблице БД   Найти похожие ветки 

 
Alex_AA ©   (2006-08-29 15:59) [0]

Подскажите, пожалуйста, как перемешать случайным образом записи (строки) в таблице базы данных? Сортировка по убыванию есть, по возрастанию тоже, а как просто перемешать?


 
Reindeer Moss Eater ©   (2006-08-29 16:02) [1]

Если есть сортировка, если записи отсортированы, то записи не лежат в случайном порядке. И наоборот.


 
Sergey13 ©   (2006-08-29 16:03) [2]

> [0] Alex_AA ©   (29.08.06 15:59)

Нужно значение поля, или функция от этого значения, дающая "случайный" результат.


 
unknown ©   (2006-08-29 16:08) [3]

Alex_AA ©   (29.08.06 15:59)
По идее, записи в бд и так лежат в случайном порядке.
Если же так необходимо такую псевдо рандомную сортировку -
то надо добавить отдельное поле, в которое выводить случайные
числа. По нему и сортировать. Вполне "случайный" порядок получится :)


 
novill ©   (2006-08-29 16:11) [4]

> Нужно значение поля, или функция от этого значения, дающая
> "случайный" результат.

выбираешь наиболее уникальное для таблицы (сочетание полей), какую-нить хеш-функцию от этого безобразия и по ней сортируешь :)


 
Anatoly Podgoretsky ©   (2006-08-29 16:13) [5]

Alex_AA ©   (29.08.06 15:59)  
Если не рассматривать некоторые изврашения, то в базе данные не отсортированы, они в случайном порядке изначально.


 
Reindeer Moss Eater ©   (2006-08-29 16:13) [6]

Как соотносятся друг с другом случайность и отсортированность ?
:)


 
ANB ©   (2006-08-29 16:20) [7]


> они в случайном порядке изначально

Ну, не совсем в случайном. Обычно они валяются в порядке добавления. Если же были удаления, то некоторые СУБД используют место удаленных записей под новые. SQL запрос, если не указан order by возвращает данные в том порядке, в каком удобнее серверу (как правило, как выгреблись, так и приедут). О нормальной случайности тут речи быть не может.


 
Anatoly Podgoretsky ©   (2006-08-29 16:21) [8]

ANB ©   (29.08.06 16:20) [7]
Ты это гарантируешь?
Гарантируешь, что запрос вернет именно в этом порядке?
Теория и практика говорит, что нет.


 
Anatoly Podgoretsky ©   (2006-08-29 16:23) [9]

Кроме того нет механизма, который обеспечил бы такую операцию, как добавить/поместить запись, например третей. А вопрос стоит именно о сортировке в базе!!!


 
ANB ©   (2006-08-29 16:53) [10]


> Anatoly Podgoretsky ©   (29.08.06 16:23) [9]

Ну она тем более не случайна, а подчиняется некоему алгоритму, придуманному разработчиками СУБД :)


 
Anatoly Podgoretsky ©   (2006-08-29 16:56) [11]

ANB ©   (29.08.06 16:53) [10]
Не о них идет речь, а том, как поместить/переместиь какую то запись в конкретную позицию, не хакерскими методами. Кстати в вопросе фигурирует Парадокс, а это как раз такая база, которая повторно использует удаленные записи, чем гарантируется неупорядоченность, даже по времени добавления.


 
ANB ©   (2006-08-29 18:05) [12]


> Anatoly Podgoretsky ©   (29.08.06 16:56) [11]

Вопросе взаимоисключающие требования. Но по
> Сортировка по убыванию есть, по возрастанию тоже, а как
> просто перемешать?

я протелепатировал, что автор имел в виду порядок записей в результирующем наборе данных.


> чем гарантируется неупорядоченность

Она не гарантируется, если не было удалений.
Но порядок записей в результирующем наборе данных может отличаться от физического порядка хранения записей в файле таблицы.


 
Anatoly Podgoretsky ©   (2006-08-29 20:03) [13]

Скажем так повезет если будет совпадать


 
Alex_AA ©   (2006-08-30 06:17) [14]

Спасибо. Идею понял



Страницы: 1 вся ветка

Текущий архив: 2006.10.29;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.027 c
2-1160660103
root
2006-10-12 17:35
2006.10.29
Нужна помощ!!!!


15-1160223275
Adder
2006-10-07 16:14
2006.10.29
Anatoly Podgoretsky с днём рождения!


15-1160061270
ProgRAMmer Dimonych
2006-10-05 19:14
2006.10.29
Подскажите, плз, адреса,


10-1124694868
OldNaum
2005-08-22 11:14
2006.10.29
COM-сервер


3-1156919569
ddddd
2006-08-30 10:32
2006.10.29
Как проверить есть ли в Query поле с заданным названием?