2013-06-22 76 views
0

我有帳戶數據庫,有某種級別的每個賬戶(會員,將隱藏在這裏使用)mysql命令的價值,合併列

查詢的範圍是不是一個問題,所以我我只會用我想要達到的英語例子。

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

這顯然沒有奏效,但基本上如果帳戶排名是隱藏的,它應該被視爲好像它是一個成員等級(所以爲什麼它是隱藏的)。

這可能嗎?

回答

3

這應該做你想要使用的是什麼簡單的CASE;

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

A very simple SQLfiddle to test with

+0

完美的工作,謝謝 –

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

+0

1和0是什麼意思? –

+0

道歉,數字將代表元素的順序。 – SlitCanvas

+0

因此,當訂購降序隱藏= 1成員= 2和管理員= 3 你會得到管理員,成員,然後隱藏。 – SlitCanvas