我想知道是否有任何簡單的方法來訂購MySQL的選擇結果通過使用鍵值對提供的查詢參數?MySQL的ORDER BY鍵值對主鍵是主鍵
我有一個查詢,目前通過對多列進行排序來計算順序,其中一些列可以即時計算(來自相關表的行數)並且速度很慢。我無法緩存整個結果,因爲有很多其他篩選器可能會應用於此查詢。我想爲排序生成緩存,因爲我不需要經常更改它(它會定期失效)。我想將此訂單存儲在Redis中。所以,我有這樣的事情(ID:訂單 - 越高越好):
- 1:39
- 2:37
- 3:34
有什麼辦法來完成它?或者也許只是存儲排序的ID數組(沒有順序,在這裏看起來多餘)。並以類似的方式使用?
編輯
我發現功能FIELD(<field>, values ...)
這可能是我所需要的。我想我必須先測試一下,看看它是否會在查詢時間過長的情況下出現問題(因爲我也讀FIELD
也很慢)。
您可能想要在您的應用程序代碼中執行這種排序而不是 – Rahul
@Rahul這不能完成,因爲結果使用LIMIT來拆分頁面中的數據,因此它必須在結果之前進行排序從數據庫返回。 – user1970395