[英]MYSQL QUERY FOR THE FOLLOWING SCENARIO
我有一张包含所有用户信息的表。
用户表示例
id username last_login
1 david 2014-01-30 12:21:54
2 sam 2014-01-30 17:43:12
3 lynda 2014-01-30 10:31:31
4 mark 2014-01-30 21:21:15
5 john 2014-01-30 23:01:01
6 jakson 2014-01-30 16:21:31
7 mandela 2014-01-30 16:35:54
8 Ashy 2014-01-30 16:11:53
问题陈述
我要按照以下条件选择用户
ORDER BY last_login ASC
,其余用户将基于ORDER BY id ASC
使用单个查询。 有可能吗?
谢谢
Sanjog
是。 您可以使用多个参数来order by
。 因此,首先以一种方式确定要订购的用户,然后根据需要订购他们,然后订购其余的用户:
order by userid in (1, 3, 4, 5, 6) desc,
(case when userid in (1, 3, 4, 5, 6) then last_login end) ASC,
id ASC
一种可能性是创建两个查询,然后使用UNION
进行连接
SELECT
Id,
UserName,
Last_login
from
Users
where Id
in(1,2,3,4,5,6,7)
order by Id
UNION
SELECT
Id,
UserName,
last_login
from
Users
ORDER BY last_login ASC
您可以尝试以下mysql查询:
select * from table_name where
id in (1,3,4,5,6) order by last_login
union
select * from table_name where
id not in (1,3,4,5,6) order by id
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.