[mysql] обратить табличку

vlfdimir58

Порядок вывода у запроса SELECT * FROM mytable WHERE 1 почти тот, что мне нужен, только в обратном порядке. Вопрос: как бы это дело развернуть на стороне MySQL, а не в скрипте?

psm-home

Что ты называешь порядком вывода? Если сортировку, то дописать ORDER BY {ASC|DESC}. Если порядок следования полей, то вместо * вписать список имен полей в нужном порядке.

otets-mihail

заведи автоинкрементное поле и сортируй по нему

vlfdimir58

меня интересует, существует ли решение без модификации таблицы.

stm7884696

ну вроде по умолчанию сортируется по первому столбцу...
В лбом случае, задаешь в конце селекта ORDER BY столбец_сортировки DESC

uncle17

кстати, идея... я как-то не подумал о дефолтной сортировке.

artimon

Порядок вывода у SELECT без ORDER BY не определён. Сегодня он может быть таким какой тебе надо, а завтра кто-нибудь произведёт оптимизацию базы и хана. Если тебе нужен определённый порядок вставляй явно ORDER BY.

uncle17

так у него ключей нет в таблице и сортировать не по чему

artimon

Ссылку на мануал или "+" за распространение ложной информации.

artimon

Не понял? Сортировать можно по чему угодно.

uncle17

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

otets-mihail

в порядке добавления, наверное

uncle17

в принципе, логично... Но как тогда сабж осуществить, совершенно неясно

psm-home

По-умолчанию порядок вывода не определен. В принципе, если сервер писали нормальные люди, то они лишнюю работу не делают и в такой ситуации никто ничего не сортирует, то есть записи выводятся соответственно тому, как они физически расположены в базе.

artimon

По стандарту: как угодно. Два последовательны select'а имеют полное право выдать результат в разном порядке.
По факту, обычно в порядке добавления в базу.
http://groups.google.com/group/alt.php.sql/browse_...

uncle17

почитал, проникся. Но вот каким образом один и тот же алгоритм даёт разные выборки, не ясно

otets-mihail

учи матчасть

uncle17

курочить исходники mysql, не зная си? Не-е-е, спасибо

vlfdimir58

Спасибо. Ситуация ясна.

stm7884696

В порядке добавления - это да, но только если ты добавил 10, потом удалил №5 а потом добавил еще одну запись - то она выведется на 5м месте...
т.е. по умолчанию мускул пытается сократить размер используемого места и пишет на освободившуюся позицию...
Так что все таки лучше использовать автоинкриментный индекс....
ну или никогда не удалять ничего....
Оставить комментарий
Имя или ник:
Комментарий: