MYSQL две таблицы сортировки TRICKY

0

Доброе утро, пожалуйста, у меня есть вопрос, если кто-то узнает... Это сложный вопрос... У меня две колонки

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 нужна группа или что-то

Большое спасибо за любой ответ. С наилучшими пожеланиями П.

  • 0
    Какой тип вашего столбца date ?
  • 0
    у вас нет даты <20171208 ... уверен, что запрос возвращает строки ???
Показать ещё 7 комментариев
Теги:

1 ответ

0

Очевидно, что у вас нет даты до 20171208, поэтому результатом является пустой набор.

Предложение order by применяется только к результатам, что означает, что запрос выполнит сначала предложение where, а затем закажет отфильтрованные результаты. Вы не можете рассчитывать на выполнение заказа сначала, а затем на часть запроса.

Пожалуйста, найдите sqlFiddle, который я создал, и убедитесь, что он отлично работает, когда вы помещаете <= вместо <в условие запроса

http://sqlfiddle.com/#!9/7609ba/18

  • 0
    Это по-прежнему не работает .... Пункт ORDER не применяется, и 20171208 является последним результатом. Но большое спасибо за ваши усилия и пример sqlfiddle.com. Пожалуйста, если вы знаете какую-то идею, я буду очень рад, как разобраться в этом вопросе.
  • 0
    Результаты запроса соответствуют ожидаемым. Я не вижу ничего странного в результатах. Что вы ожидаете в результате или какой запрос? Не могли бы вы объяснить немного лучше, потому что предложение «ЗАКАЗ не применяется, а 20171208 - это последний результат» не очень понятно.
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню