我有一个DB,它是一个培训计划的出席名单。在此列表中 - 第一个订阅获得优先级 - 并且本地用户也具有优先权。
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
但没有用。
答案 0 :(得分:0)
您似乎想首先通过在美国订购,然后按日期订购:
在MySQL中,你可以这样做:
order by (country = 'USA') desc, date
答案 1 :(得分:0)
我建议创建一个包含位置和优先级代码(整数)的单独表。内部加入两个然后按优先级代码升序排序。美国将优先考虑1,加拿大将优先考虑2。