我有一個MySQL查詢時返回以下數據:Mysql - 按自定義順序嗎?
select Desc,Value from table;
Desc Value
a 4
r 3
e 4
j 7
w 6
p 6
我想DESCR但在一個特定的順序排序(這種特殊需要JSON)
Desc Value
r 3
a 4
e 4
j 7
p 6
w 6
這是可能的?
我有一個MySQL查詢時返回以下數據:Mysql - 按自定義順序嗎?
select Desc,Value from table;
Desc Value
a 4
r 3
e 4
j 7
w 6
p 6
我想DESCR但在一個特定的順序排序(這種特殊需要JSON)
Desc Value
r 3
a 4
e 4
j 7
p 6
w 6
這是可能的?
這並不漂亮,但您可以通過訂購(condition) DESC
。 DESC
因爲如果條件爲真,它比如果條件爲假更:
SELECT
Desc,
Value
FROM
Foo
ORDER BY
(Desc = 'r') DESC,
(Desc = 'a') DESC,
(Desc = 'e') DESC,
(Desc = 'j') DESC,
(Desc = 'p') DESC,
(Desc = 'w') DESC
您可以通過一個case
表達式,指定訂購訂購您想要的:
SELECT `desc`, `value`
FROM my_table
ORDER BY CASE `desc` WHEN 'r' THEN 1
WHEN 'a' THEN 2
WHEN 'e' THEN 3
WHEN 'j' THEN 4
WHEN 'p' THEN 5
WHEN 'w' THEN 6
ELSE 999 --for completeness sake
END CASE ASC
如果您想要的順序是任意的(就SQL而言),我會說這將會過於複雜,您應該嘗試使用服務器端實現語言(例如, PHP)而不是自定義排序函數更原生/通用。 –