Php mysql按值排序,合并列

Php mysql按值排序,合并列,php,mysql,sql-order-by,Php,Mysql,Sql Order By,我有一个帐户数据库,每个帐户都有某种等级(这里使用隐藏的成员) 查询的范围不是问题,所以我将使用一个英语示例来说明我试图实现的目标 从帐户中选择*。。。按等级排序(如果等级为“隐藏”,则等级为“成员”)说明 这显然不起作用,但基本上,如果帐户级别是隐藏的,则应将其视为一个成员级别(因此它为什么隐藏) 可以这样做吗?您可以使用order by中的case语句来修改排序: ORDER BY CASE WHEN rank="Hidden" THEN 1 WHEN rank="

我有一个帐户数据库,每个帐户都有某种等级(这里使用隐藏的成员)

查询的范围不是问题,所以我将使用一个英语示例来说明我试图实现的目标

从帐户中选择*。。。按等级排序(如果等级为“隐藏”,则等级为“成员”)说明

这显然不起作用,但基本上,如果帐户级别是隐藏的,则应将其视为一个成员级别(因此它为什么隐藏)


可以这样做吗?

您可以使用order by中的case语句来修改排序:

 ORDER BY
 CASE 
     WHEN rank="Hidden" THEN 1
     WHEN rank="Member" THEN 1
     ELSE 0
 END DESC 
这允许您根据自己的需要对用户级别进行排名


请参阅修改后的SQL FIDLE-

您可以使用order by中的case语句来修改排序:

 ORDER BY
 CASE 
     WHEN rank="Hidden" THEN 1
     WHEN rank="Member" THEN 1
     ELSE 0
 END DESC 
这允许您根据自己的需要对用户级别进行排名


请参阅修改后的SQL FIDLE-

这应该可以使用简单的
案例来实现您想要的功能

SELECT * 
FROM accounts 
ORDER BY CASE WHEN rank='Hidden' THEN 'Member' ELSE rank END DESC

SELECT * 
FROM accounts 
ORDER BY CASE WHEN rank='Hidden' THEN 'Member' ELSE rank END DESC

.

抱歉,这些数字代表元素的顺序。因此,对于hidden=1 member=2和admin=3,当按降序排序时,您将得到admin、members和hidden。我(可能)错误地认为您不希望按字母顺序排列帐户级别……嗯,您没有错,但这个特定的模型不起作用+1但是,对于正确的概念,谢谢!很抱歉,这些数字代表元素的顺序。因此,对于hidden=1 member=2和admin=3,当按降序排序时,您将得到admin、members,然后隐藏。我(可能)错误地认为您不希望按字母顺序排列帐户级别……嗯,您没有错,但这个特定的模型不起作用+1但是,对于正确的概念,谢谢!