Форум: "Базы";
Текущий архив: 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.041 c