mysql按值排序,合并列

时间:2013-06-22 19:00:33

标签: php mysql sql-order-by

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

查询的范围不是问题,因此我将使用我正在尝试实现的英语示例。

SELECT * FROM accounts ... ORDER BY rank (IF rank="Hidden" THEN rank="Member") DESC

这显然不起作用,但基本上如果隐藏了帐户排名,则应将其视为成员排名(因此隐藏起来的原因)。

这可能吗?

2 个答案:

答案 0 :(得分:3)

这应该可以使用简单的CASE;

执行您想要的操作
SELECT * 
FROM accounts 
ORDER BY CASE WHEN rank='Hidden' THEN 'Member' ELSE rank END DESC

A very simple SQLfiddle to test with

答案 1 :(得分:2)

您可以按顺序使用案例陈述来修改排序:

 ORDER BY
 CASE 
     WHEN rank="Hidden" THEN 1
     WHEN rank="Member" THEN 1
     ELSE 0
 END DESC 

这允许您根据需要对用户级别进行排名。

请参阅修改后的SQL小提琴 - http://sqlfiddle.com/#!2/dcc71/5/0