我在找允許通過MySQL的自定義排序邏輯,允許以下數據集:交替次序通過邏輯在MySQL
+----+-----------------+------------+-------+--+
| ID | item | Popularity | Views | |
+----+-----------------+------------+-------+--+
| 1 | A special place | 3 | 10 | |
| 2 | Another title | 5 | 12 | |
| 3 | Words go here | 1 | 15 | |
| 4 | A wonder | 2 | 8 | |
+----+-----------------+------------+-------+--+
要返回以便交替,逐行人氣和然後通過的意見,因此,返回結果如下:
+----+-----------------+------------+-------+--+
| ID | item | Popularity | Views | |
+----+-----------------+------------+-------+--+
| 3 | Words go here | 1 | 15 | |
| 2 | Another title | 5 | 12 | |
| 4 | A wonder | 2 | 8 | |
| 1 | A special place | 3 | 10 | |
+----+-----------------+------------+-------+--+
在那裏你會看到第一行返回「最受歡迎」,第二行返回最意見,第三行返回第二個最流行,第四行返回第二個最多的視圖。
目前我通過mySQL收集整個表兩次,然後將這些結果合併到PHP中。當數據庫很大時,這不會削減它。這可能在MySQL中呢?
你爲什麼要這樣排序的行? –
是的,這是可能的 - 雖然我也喜歡你當前的方法 – Strawberry
你可以用'usort'在PHP中進行這種類型的排序,但不知道如何在MySQL中直接做到這一點。 –