我有帳戶數據庫,有某種級別的每個賬戶(會員,將隱藏在這裏使用)mysql命令的價值,合併列
查詢的範圍是不是一個問題,所以我我只會用我想要達到的英語例子。
SELECT * FROM accounts ... ORDER BY rank (IF rank="Hidden" THEN rank="Member") DESC
這顯然沒有奏效,但基本上如果帳戶排名是隱藏的,它應該被視爲好像它是一個成員等級(所以爲什麼它是隱藏的)。
這可能嗎?
我有帳戶數據庫,有某種級別的每個賬戶(會員,將隱藏在這裏使用)mysql命令的價值,合併列
查詢的範圍是不是一個問題,所以我我只會用我想要達到的英語例子。
SELECT * FROM accounts ... ORDER BY rank (IF rank="Hidden" THEN rank="Member") DESC
這顯然沒有奏效,但基本上如果帳戶排名是隱藏的,它應該被視爲好像它是一個成員等級(所以爲什麼它是隱藏的)。
這可能嗎?
這應該做你想要使用的是什麼簡單的CASE
;
SELECT *
FROM accounts
ORDER BY CASE WHEN rank='Hidden' THEN 'Member' ELSE rank END DESC
您可以在訂單使用的情況下,聲明修改排序:
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
1和0是什麼意思? –
道歉,數字將代表元素的順序。 – SlitCanvas
因此,當訂購降序隱藏= 1成員= 2和管理員= 3 你會得到管理員,成員,然後隱藏。 – SlitCanvas
完美的工作,謝謝 –