在mysql查询中设置多个顺序

时间:2017-09-14 09:10:56

标签: php mysql sql mysqli

我有一个用户表,其中包含一些用户信息。

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

2 个答案:

答案 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

条件订购可以满足您的需求。