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
Потому что в абстрактном SQL этот порядок не гарантируется, но в mysql можно не сортировать.
Ну и некоторым удобнее вложить больше логики в SQL, чем вспоминать как там в php работать с массивами. Тем более это пара символов.
Hixon10, я другое имею ввиду. есть вероятность что необратимые преобразования уже были сделаны
Hixon10, база могла быть и необратимо убита . то есть она работала на сайте, но при снятии дампа ее как раз и сломали. Наличие значков '?' может об этом свидетельствовать.
Лучше бы из mysql достать исходные файлы данных.
Димитрий, видимо, диск стал называться sdc, sde,sdf или как там еще принято в centos. Раз md сам не собрался, то ничего они не запускали.
Нужно узнать куда что подключено теперь и дать команду на синхронизацию.