Ich suche nach einer benutzerdefinierten Ordnungslogik durch mySQL zu ermöglichen, die den folgenden Datensatz erlaubt:Alternative, um durch eine Logik in 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 | |
+----+-----------------+------------+-------+--+
einen Auftrag zurückzugeben, die im Wechsel, Zeile für Zeile, nach Beliebtheit und dann von Ansichten, so dass die Rückkehr Ergebnisse wie folgt aussehen:
+----+-----------------+------------+-------+--+
| 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 | |
+----+-----------------+------------+-------+--+
wo Sie die erste Zeile gibt die ‚beliebtesten‘ sehen, die zweite Reihe die meisten Ansichten zurück, die dritte Reihe, die zweitbeliebteste zurückgibt, und Die 4. Reihe gibt die zweithöchsten Ansichten zurück.
Momentan sammle ich eine ganze Tabelle zweimal durch mySQL und füge diese Ergebnisse dann in PHP zusammen. Dies wird es nicht schneiden, wenn die Datenbank groß ist. Ist das überhaupt in Mysql möglich?
Warum möchten Sie die Zeilen so sortiert? –
Ja, es ist möglich - obwohl ich Ihren aktuellen Ansatz auch mag – Strawberry
Sie können diese Art der Sortierung in PHP mit 'usort' machen, nicht sicher, wie Sie es in MySQL direkt tun. –