Einfache Antwort:
Instrument Ihrer Daten mit einem anderen "ordering" int Feld und dann ORDER BY diesem Feld. Dies sollte die meiste Zeit alles sein, was notwendig ist. Ich habe das erfolgreich gemacht, wo Kunden bestimmte Produkte in eine Liste mit Funktionen blenden können, indem sie niedrige Werte wie -1 oder -99 in das Bestellfeld eingeben.
Complex Antwort:
Dies würde gelten, wenn Sie, dass eine Bestellung normalisieren wollen, und wenn vielleicht haben Sie ein anderes Feld als zweiten Faktor in der Größenordnung haben, das ist schon in der Haupttabelle. Dies würde auch hilfreich sein, wenn Sie jedem Bestellpunkt andere Informationen wie z. B. eine Notiz zuordnen. Oder wenn viele Tabellen diese willkürliche Reihenfolge implementieren und Sie diese Reihenfolge von einem Ort aus orchestrieren/ändern möchten.
Was würden Sie tun, ist die „willkürlich“, um in einer Tabelle platzieren Sie verbinden können und dann durch das Feld der Bestellung:
SELECT t.*, o.ordering
FROM table_name AS t
LEFT JOIN table_name_ordering AS o ON t.ordering_id = o.id
ORDER BY o.ordering, t.other_field
@MattDiPasquale - Sie haben bereits eine Bestellung in '1,3,2,9,7', laden Sie einfach die Ergebnisse für' 1,2,3,9,7', und legen Sie sie in der Reihenfolge von '1 , 3,2,9,7'. Irgendeine bestimmte Programmiersprache? – ajreal
Ich benutze WordPress, PHP. Ich möchte alles in MySQL machen, so dass ich keine Verarbeitung in PHP machen muss. – ma11hew28
@MattDiPasquale - 'find_in_set' ist nicht schnell und nicht sehr optimiert. In PHP ist es schneller und optimiert. – ajreal