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

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

DeadMorozBLR

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

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

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

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

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

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

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

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

-~{}~ 18.07.06 16:02:

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

Мне нужно выбрать записи, упорядоченные по ID, для этого мне нужно перекрыть этот метод. Прежде чем перекрыть этот метод, я должен убедиться в необходимочти этого и понять, в каком порядке выбирает записи метод базового класса.
 
DeadMorozBLR
поверь мне, тебе же будет проще если ты примешь мне на веру и будешь всегда думать что выборка без сортировки хаотична
 
zerkms
Спасибо за совет, однако, Вы не ответили на мой вопрос. Я понимаю, что подобного рода проблем можно избежать, если не полагаться на волю случая, а указывать порядок выборки явно.

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

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

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

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

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

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

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

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

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

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