Упорядочивание данных выборки.

Статус
В этой теме нельзя размещать новые ответы.

DeadMorozBLR

Новичок
Упорядочивание данных выборки.

Ткните, пжт, в ман, каким образом упорядочиваются записи при выборке, если порядок явно не указан, a-la SELECT * FROM tbl?

Есть таблица с несколькими полями, PRIMARY KEY(`id`) и еще несколькими ключами. Я провел эксперимент: сделал дамп таблицы, в дампе поменял записи местами таким образом, что "INSERT ..." записи с id = 1 оказался на последнем месте, и ипортировал этот дамп обратно.

Так вот, при выполнении запроса SELECT запись с id = 1 оказалась последней, выходит, что по умолчанию записи упорядочиваются по времени их создания.

Так ли?
 

zerkms

TDD infected
Команда форума
говорить о каком-либо порядке без указания собственно правила сортировки глупо
 

DeadMorozBLR

Новичок
Спасибо, конечно, за поучения, но я задал другой вопрос. Он звучит следующим образом:

В каком порядке выводятся записи, если порядок выборки явно не задан?
 

4m@t!c

Александр
А каком порядке выводятся записи, если порядок выборки явно не задан?
В неопределенном. Продолжите фразу: "мне нужно знать, в каком порядке выводятся записи, когда порядок не указан явно, для того что бы...."
 

zerkms

TDD infected
Команда форума
DeadMorozBLR
пожалуйста, конечно. повторю свой ответ другими словами. ответ звучит следующим образом:

если порядок выборки явно не задан, то данные выбираются безо всякого порядка (см. "хаотично")
 

DeadMorozBLR

Новичок
Автор оригинала: zerkms
данные выбираются безо всякого порядка (см. "хаотично")
Не соглашусь, т.к. они выбираются всё время в одном и том же порядке, а значит не хаотично.

Даже этот, пока еще ни кем из нас не описанный порядок, чем-то определяется.

-~{}~ 18.07.06 16:02:

4m@t!c
Для того, чтобы понять причину непонятного мне поведения: объект выбирает связанные объекты из БД. Метод выборки описан в одном из базовых классов, и там порядок выборки не указан.

Мне нужно выбрать записи, упорядоченные по ID, для этого мне нужно перекрыть этот метод. Прежде чем перекрыть этот метод, я должен убедиться в необходимочти этого и понять, в каком порядке выбирает записи метод базового класса.
 

zerkms

TDD infected
Команда форума
DeadMorozBLR
поверь мне, тебе же будет проще если ты примешь мне на веру и будешь всегда думать что выборка без сортировки хаотична
 

DeadMorozBLR

Новичок
zerkms
Спасибо за совет, однако, Вы не ответили на мой вопрос. Я понимаю, что подобного рода проблем можно избежать, если не полагаться на волю случая, а указывать порядок выборки явно.

Это я знал и без Вас.

Еще соображения? Только по теме, пожалуйста.
 

zerkms

TDD infected
Команда форума
Я понимаю, что подобного рода проблем можно избежать
их избегать не "можно", а "нужно".
эта проблема у вас возникла вероятно вследствие неправильной оценки ситуации, и как факт - попытка реализовать неправильное решение.

так что предложение: описать ситуацию полностью и потом уже думать
 

XtremallyPurpur

Новичок
Физически записи в таблице не упорядочены. Выборка без указания ORDER BY часто возвращает записи "упорядоченные" по primary key. Но на это нельзя полагаться.

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

Но это совсем не значит, что данные выбираются "хаотично".
 

zerkms

TDD infected
Команда форума
XtremallyPurpur
именно поэтому я слово "хаотично" написал в кавычках. это раз.
это допущение позволит потом избежать сложнонаходимых ошибок логики. это два.
 

XtremallyPurpur

Новичок
Вы не обязаны оправдываться.

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

zerkms

TDD infected
Команда форума
XtremallyPurpur
хехе... я не оправдывался. я сказал человеку - его дело слушать меня или нет.
Вместо конкретного ответа с указанием, почему происходит именно так
а это думаю лучше всего скажут девелоперы (либо те, кто ориентируется в сорсах).
так что для понимания, о котором вы говорите, аксиома "без сортировки записи выдаются хаотично" как нельзя лучше имхо
 

DeadMorozBLR

Новичок
Это не аксиома, а Ваше личное суждение. Опыт, если хотите.

Аксиома - это истина, не требующая доказательств, на что ваши доводы, как мне кажется, претендовать не могут.

Собственно тех, кто знает, как именно есть, я и спрашивал.

А лезть со своими суждениями не по теме я счиаю признаком невоспитанности и неуважения к собеседнику.
 

zarus

Хитрожопый макак
>> Аксиома - это истина, не требующая доказательств, на что ваши доводы, как мне кажется, претендовать не могут.
[оффтоп]
А еще древние философы аксиоматично утверждали, что атом - неделимая частица.
Аксиома - это не "истина, не требующих доказательств", это суждения о фактах, которые не могут быть доказаны теоретически, но при этом дающие достоверный результат на практике.
[/оффтоп]
 

Фанат

oncle terrible
Команда форума
Тема закрыта.

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