netwind

Рейтинг
419
Регистрация
06.05.2007

Andreyka, Опять лор читал ? Между прочим, maatkit больше не разрабатывается.

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

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

iopiop, теперь понял. ну если вообще избавиться, то всегда будет сортирован.

вот только ради чего? вывод в обратном порядке - отход от привычного шаблона, потенциальные ошибки и непонимание со стороны других программистов.

iopiop, просто покажи где в SQL92 прямо или косвенно написано, что ORDER BY указанный в подзапросе ДОЛЖЕН (а не может) привести к выдаче отсортированного результата во внешнем запросе. ну или любой другой доступный стандарт на SQL.

А убрать SELECT - это уже нарушение стандарта. Тогда ТОЧНО не будет ничего выводить.

Этот программист опирался на те вещи, которые явно зафиксированы, а не на экспериментальные данные о поведении mysql. И его код будет работать правильно во всех версиях mysql. А на что опирается твой вариант?

iopiop, разные варианты можно предположить.

Я бы использовал здесь подзапрос для того чтобы отделить логику от представления. На php останется только приделать шаблонный цикл не загромождая его дополнительно логикой в виде еще одной сортировки.

Ну и подзапросы не всегда плохие. Поэтому двойной order by никак не хуже.

Так же, я обратил внимание на слова "записи-то уже отсортированы" - это неверно. Если убрать самый внешний order by, то порядок выдачи не гарантируется (в абстрактной реализации SQL). На php массив реально придется сортировать, не просто вывести в обратном порядке. Этот код был бы неемкий и только загромождает все.

iopiop, спрашивали ЧТО ЭТО, а не как пишут люди, которым неудобно писать SQL.

iopiop, вы неправильно понимаете суть sql. Никаких "уже" и предположений о последовательности выполнения запроса в sql нет. Это декларативный язык. Нужно думать об SQL как о языке описания данных, а не как об инструкциях о последовательности их получения. Тогда смысл приведенного кода будет понятен.

Такой синтаксис не обязан работать в конкретных реализациях SQL, но может - http://troels.arvin.dk/db/rdbms/#select-order_by

Например, в MSSQL синтаксически невозможно указать order by в подзапросе http://msdn.microsoft.com/en-us/library/aa259187%28v=sql.80%29.aspx#_order_by_clause

Кроме случая как у ТС, где можно использовать аналог LIMIT - TOP :

.. ( SELECT TOP N .. ORDER BY .. ) .. ORDER BY

iopiop:
"order by datetime asc" вполне в пхп делается, записи-то уже отсортированы. всего делов-то, выводить массив не с начала в конец, а с конца в начало

Потому что в абстрактном SQL этот порядок не гарантируется, но в mysql можно не сортировать.

Ну и некоторым удобнее вложить больше логики в SQL, чем вспоминать как там в php работать с массивами. Тем более это пара символов.

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

Hixon10, база могла быть и необратимо убита . то есть она работала на сайте, но при снятии дампа ее как раз и сломали. Наличие значков '?' может об этом свидетельствовать.

Лучше бы из mysql достать исходные файлы данных.

Димитрий, видимо, диск стал называться sdc, sde,sdf или как там еще принято в centos. Раз md сам не собрался, то ничего они не запускали.

Нужно узнать куда что подключено теперь и дать команду на синхронизацию.

Всего: 6293