我想排序出現在我的頁面的列值,起初它會尋找活動,然後等待,然後出售,然後即將到來。但它顯示的其他情況。這裏是我的代碼MySQL Field()排序
SELECT
*
FROM custom
ORDER BY
FIELD(status,'Active','Pending','Sold','Upcoming') DESC
我想排序出現在我的頁面的列值,起初它會尋找活動,然後等待,然後出售,然後即將到來。但它顯示的其他情況。這裏是我的代碼MySQL Field()排序
SELECT
*
FROM custom
ORDER BY
FIELD(status,'Active','Pending','Sold','Upcoming') DESC
雖然這是事實,ORDER BY Status
應該工作,在理論上,因爲目前您想要的順序發生是按字母順序排列的,並且暫時忽略不清楚「它沒有工作」是什麼意思,更可擴展的方法是使用CASE
表達式。
ORDER BY CASE Status
WHEN 'Active' THEN 0
WHEN 'Pending' THEN 1
WHEN 'Sold' THEN 2
WHEN 'Upcoming' THEN 3
END DESC;
更具前景的解決方案將是一個ID,名稱和序列的狀態表。您在查詢中加入該表,然後按順序排序。然後,如果您稍後決定以不同順序請求數據,則可以更改序列,並且稍後可以輕鬆地添加更多狀態類型,而無需觸及查詢。另外它可以讓你存儲id而不是字符串,讓你在相同的空間存儲更多的數據。
向我們展示一個示例數據集和您想要的輸出。 – Kermit
其顯示在第一時間出售然後活躍然後待定然後即將到來 –
好的,不要給我們示例數據集。 – Kermit