MySQL -如何按TOP中的特定值排序Select

wgxvkvu9  于 2023-02-21  发布在  Mysql
关注(0)|答案(2)|浏览(155)

我有一个数据库,这是一个培训计划的出席名单。在这个名单-第一次订阅获得优先权-和本地用户也有优先权。
数据库:

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

卡尔是从美国来的,那么我需要优先考虑他,甚至玛丽也提前订阅了。
你知道吗?

    • 重要提示:国家优先级根据培训地点而变化。(这里的地点是"美国",但可以是任何国家)

我试过这个:

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

但没有成功。

zxlwwiss

zxlwwiss1#

您似乎希望先在美国订购,然后按日期订购:
在MySQL中,您可以执行以下操作:

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

0g0grzrc2#

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

相关问题