кто шарит в mysql

12
N
На сайте с 06.05.2007
Offline
419
#11

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

Кнопка вызова админа ()
I
На сайте с 23.12.2010
Offline
25
#12
netwind:
iopiop, спрашивали ЧТО ЭТО, а не как пишут люди, которым неудобно писать SQL.

ну а я спросил ЗАЧЕМ.

а вы зачем-то стали рассказывать про негарантированность порядка выдачи, хотя в данном случае она гарантирована

N
На сайте с 06.05.2007
Offline
419
#13

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

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

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

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

I
На сайте с 23.12.2010
Offline
25
#14
netwind:
iopiop, разные варианты можно предположить.
Я бы использовал здесь подзапрос для того чтобы отделить логику от представления. На php останется только приделать шаблонный цикл не загромождая его дополнительно логикой в виде еще одной сортировки.

не нужно еще одной сортировки, уже все отсортировано

netwind:

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

ключевое слово "если". мы-то не рассматриваем коня в вакууме. "если" убрать селект, так вообще ничего выводиться не будет, не так ли? а "если" дроп поставить, так вообще таблица исчезнет ;-)

N
На сайте с 06.05.2007
Offline
419
#15

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

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

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

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

загадками говорите. при чем здесь SQL92, если я как раз и предлагаю подзапрос выбросить?

netwind:

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

ну мне не сложно еще раз повторить

mysql_query("select*from textos where (user1 = '$user1' and user2 = '$user2') or (user1 = '$user2' and user2 = '$user1') order by datetime desc limit 10")

у какого вендора СКЛ этот запрос может работать не правильно (с поправкой на синтаксис ессно, limit -> top) ?

N
На сайте с 06.05.2007
Offline
419
#17

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

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

I
На сайте с 23.12.2010
Offline
25
#18

ето потому что тут задача изначально нестандартная - самые свежие записи должны снизу :-)

так что тут наоборот разрыв шаблона случится, как так, выводить надо наоборот, а шаблон стандратный :-)

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий