У меня есть БД, которая является списком посещаемости для учебной программы. В этом списке - первые подписки получают приоритет - и у ЛОКАЛЬНЫХ ПОЛЬЗОВАТЕЛЕЙ тоже есть приоритет.
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
но не работает.
Вы, кажется, хотите заказать сначала, находясь в США, а затем по дате:
В MySQL вы можете:
order by (country = 'USA') desc, date
Я бы рекомендовал создать отдельную таблицу с местоположением и кодом приоритета (целое число). Внутреннее соединение двух, а затем упорядочить по приоритетному коду по возрастанию. У США будет приоритет 1, КАНАДА - 2.