MySQL - Как заказать Select по определенному значению в TOP

0

У меня есть БД, которая является списком посещаемости для учебной программы. В этом списке - первые подписки получают приоритет - и у ЛОКАЛЬНЫХ ПОЛЬЗОВАТЕЛЕЙ тоже есть приоритет.

DB:

ID NAME SUBSCRIPTION DATE COUNTRY
1  JOHN 2018-04-05 12:00:00 USA
2  MARY 2018-04-05 12:30:00 CANADA
3  CARL 2018-04-05 13:00:00 USA

Мне нужен способ упорядочить таблицу следующим образом:

ID NAME SUBSCRIPTION DATE COUNTRY
1  JOHN 2018-04-05 12:00:00 USA
3  CARL 2018-04-05 13:00:00 USA
2  MARY 2018-04-05 12:30:00 CANADA

CARL из США, тогда мне нужно отдать ему приоритет, даже Мэри делает свою подписку на ранней стадии.

любая идея?

** ВАЖНО: Приоритет страны изменяется в зависимости от места проведения тренинга. (здесь находится "США", но может ли я в любой стране)

Я пробую это:

SELECT * FROM SUBSCRIPTION_TABLE ORDER BY COUNTRY = 'LOCAL_COUNTRY_VAR', SUBSCRIPTION_DATE

но не работает.

Теги:

2 ответа

0
Лучший ответ

Вы, кажется, хотите заказать сначала, находясь в США, а затем по дате:

В MySQL вы можете:

order by (country = 'USA') desc, date
  • 0
    привет Гордон-Линофф! ТКС! Я сделал обновление в своем вопросе - и я пытался что-то вроде этого ... НО ... без скобок. решена! ТКС!
0

Я бы рекомендовал создать отдельную таблицу с местоположением и кодом приоритета (целое число). Внутреннее соединение двух, а затем упорядочить по приоритетному коду по возрастанию. У США будет приоритет 1, КАНАДА - 2.

Ещё вопросы

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