繁体   English   中英

以下场景的MySQL查询

[英]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

问题陈述

我要按照以下条件选择用户

  • 某些用户(即用户ID 1,3,4,5,6)将基于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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM