MySQL - 如何在TOP

时间:2018-04-08 01:24:57

标签: mysql sql

我有一个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

但没有用。

2 个答案:

答案 0 :(得分:0)

您似乎想首先通过在美国订购,然后按日期订购:

在MySQL中,你可以这样做:

order by (country = 'USA') desc, date

答案 1 :(得分:0)

我建议创建一个包含位置和优先级代码(整数)的单独表。内部加入两个然后按优先级代码升序排序。美国将优先考虑1,加拿大将优先考虑2。