Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.10.29;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.074 c
15-1160148460
Piter
2006-10-06 19:27
2006.10.29
Объявление в метро


2-1160466247
yel
2006-10-10 11:44
2006.10.29
Сохраить свойства объекта


2-1160673110
XeRoN
2006-10-12 21:11
2006.10.29
Закрытие чужой формы


15-1160112642
Sergey Konuhov
2006-10-06 09:30
2006.10.29
Задачи о расписаниях (комивояджера)


15-1160461602
ors_archangel
2006-10-10 10:26
2006.10.29
Как на асме посчитать арктангенс





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский