Гость
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Mysql. Футнкция IF в Order By / 6 сообщений из 6, страница 1 из 1
14.01.2021, 22:20
    #40035981
rubiks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Mysql. Футнкция IF в Order By
Добрый день. Никак не могу вкурить как работает IF в ORDER BY.
Кто может просто объяснить как это работает.
Прикладываю скрин.
В приципе запрос правильно работает. Я понял, как регулировать запрос, чтобы цены с нулем были вверху списка или внизу, при этом сама сортировка от этого бы не зависила.
К сути:
Но, я не понимаю механику этой работы.
Вот идет конструкция IF(`price`>0, 0, 1).
Пишу, что она делает: если цена больше нуля, то возвращаем нуль, если цена меньше нуля или равна нулю, то возвращаем 1. Я не понимаю, как эти данные могут работать в сортировке.
Далее в работу вступает второй аргумент сортировки.

Может, кто-нибуть объяснить как это работает и почему?

П.С. в интернете искал. Нахожу только примеры, что это работает. А почему не пишут.

Заранее спасибо.
...
Рейтинг: 0 / 0
15.01.2021, 00:37
    #40035997
MikkiMouse
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Mysql. Футнкция IF в Order By
rubiks,

Выведи результат выражения IF(`price`>0, 0, 1) в отдельной колонке перед собственно price и посмотри на него долгим вдумчивым взглядом ))
...
Рейтинг: 0 / 0
15.01.2021, 07:18
    #40036011
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Mysql. Футнкция IF в Order By
В принципе нафига тут IF? только лишнее сравнение, и никакого профиту... ORDER BY price <= 0, price сделает то же самое, но без ненужных операций.
...
Рейтинг: 0 / 0
19.01.2021, 13:33
    #40037112
rubiks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Mysql. Футнкция IF в Order By
Akina,

Спасибо за инфу. Буду знать. Я так понял, что это более короткая запись. А так это тоже самое.
...
Рейтинг: 0 / 0
19.01.2021, 13:44
    #40037119
rubiks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Mysql. Футнкция IF в Order By
MikkiMouse,

Вывел. Я и до этого это понимал. И написал, что там либо нуль либо единица возвращаются.
И вот и не понимаю, как работает эта конструкция... Если я просто напишу туда нуль - то будет ошибка. Поэтому и не понимаю алгоритм работы.
...
Рейтинг: 0 / 0
19.01.2021, 13:53
    #40037126
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Mysql. Футнкция IF в Order By
rubiks,

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

1,2,3,4,......,0,0,0,0,0
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Mysql. Футнкция IF в Order By / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]