我有一个用户表,其中包含一些用户信息。
id | name | country
------------------------------
1 | user1 | India
2 | user2 | China
3 | user3 | United State
4 | user4 | India
5 | user5 | Shri Lanka
6 | user6 | China
7 | user7 | India
我想搜索用户并编写一个Mysql查询。用户列表我想要按id desc排序,但是如果中国国家的用户应该到最后。
select * from users order by id desc
这个查询按降序给出结果,但我不知道我写的是关于国家的内容。
我的输出应该
id | name | country
------------------------------
7 | user7 | India
5 | user5 | Shri Lanka
4 | user4 | India
3 | user3 | United State
1 | user1 | India
6 | user6 | China
2 | user2 | China
答案 0 :(得分:3)
您可以使用条件排序:
ORDER BY t.country = 'China', // 1 if true, 0 if false, ordered ASC
t.id DESC
MySQL接受布尔表达式,因此t.country = 'China'
如果为真则为1,如果为假则为0。
答案 1 :(得分:2)
尝试以下
SELECT * FROM users ORDER BY country = 'China',id DESC
条件订购可以满足您的需求。