mysql - 仅在 UNION mysql 中的一个查询中排序

标签 mysql union

我有一张 table

用户

 Id      Name     status        
 1       Jhon     Approved        
 2       Endy     Decline
 3       Ally     In Review

我必须显示所有用户的列表,并仅对那些未获批准的行进行排序。

我的代码如下

(select name from user where status<>'Approved' order by status asc)
UNION  
(select name from user where status='Approved')

我总是在 ASCDESC 两种情况下得到这个

Id      Name     status             
 3      Ally     In Review
 2      Endy     Decline
 1      Jhon     Approved   

name 排序的结果应该相同。

(select name from user where status<>'Approved' order by name asc)
UNION  
(select name from user where status='Approved')

 Id      Name     status             
 3       Ally     In Review
 2       Endy     Decline
 1       Jhon     Approved   

请帮帮我。您的帮助将不胜感激。

最佳答案

您可以使用 case when 作为 order by

select * from User 
order by  
case when status <> 'Approved' then 0 else 1 end ,status;

关于mysql - 仅在 UNION mysql 中的一个查询中排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32589444/

相关文章:

mysql - Mysql 中使用 count、group by、order by 和 union 进行选择失败

MySQL 按日期分组并计算包括缺失日期

java - Netbeans java 应用程序 - 在 MySql 数据库上执行查询

MySQL:多个UNION中的相同字段值

sql - 为什么合并后只有一条记录?

MySQL 错误代码 1242

mysql联合查询,每个联合上都有单独的别名

PHP/SQL 创建日期戳并将其插入数据库

mysql - 创建表格并填充以文本形式提供的测试数据

mysql - 将Json文件API转为MySQL数据表