Доброе утро, пожалуйста, у меня есть вопрос, если кто-то узнает... Это сложный вопрос... У меня две колонки
date active
20180211 0
20180100 0
20171208 1
Мне нужно сортировать его по active 1 + date
сначала, а затем сортировать по active 0 + date
....
Ожидаемый результат:
date active
20171208 1
20180211 0
20180100 0
Рабочее решение без проблем
SELECT * FROM xy ORDER BY active DESC, date DESC
Теперь мне нужно выполнить предложение WHERE, потому что будут xy результаты, и вот проблема.
SELECT * FROM xy WHERE date < 20171208 ORDER BY active DESC, date DESC LIMIT 1
Это не работает, это все еще обрабатывается без ORDER, а "20171208" - последний результат в mysql (порядок не применяется)... Maybee нужна группа или что-то
Большое спасибо за любой ответ. С наилучшими пожеланиями П.
Очевидно, что у вас нет даты до 20171208, поэтому результатом является пустой набор.
Предложение order by применяется только к результатам, что означает, что запрос выполнит сначала предложение where, а затем закажет отфильтрованные результаты. Вы не можете рассчитывать на выполнение заказа сначала, а затем на часть запроса.
Пожалуйста, найдите sqlFiddle, который я создал, и убедитесь, что он отлично работает, когда вы помещаете <= вместо <в условие запроса
date
?