Diese Frage hat eine kleine Geschichte — Is there a way to make a query respect the order of the inputted parameters?Machen PostgreSQL die Reihenfolge der eingegebenen Parameter?
Ich bin neu zu „spezialisiert“ Abfragen erstellen, so dass ich davon ausgegangen, dass, wenn ich eine IN
Klausel als Teil einer SELECT
Abfrage liefern, wird es Ergebnisse in der gleichen Rück Auftrag. Leider ist das nicht der Fall.
SELECT * FROM artists WHERE id IN (8, 1, 2, 15, 14, 3, 13, 31, 16, 5, 4, 7, 32, 9, 37)
>>> [7, 32, 3, 8, 4, 2, 31, 9, 37, 13, 16, 1, 5, 15, 14]
(Haben Sie nicht den Schritt umfassen, wo ich Python eine Schleife durch das Ergebnis verwendet und die IDs zu einer Liste anhängen.)
Die Frage ist also, ist es eine Möglichkeit, Postgres zu machen, den Respekt Bestellung der Parameter in einem IN
Klausel durch Rückgabe der Ergebnisse die gleiche Auftrag gegeben?
Vielen Dank für Ihre Antwort. Ich habe eine Menge darüber offen gelassen, wie meine Bewerbung funktioniert. Kurz gesagt, ein Ranking entspricht nicht nur einem Künstler, sondern kann einer beliebigen Anzahl von Objekttypen entsprechen, die wir ihm geben. Das heißt, ich verwende Djangos Generika, um diese Beziehungen zu erstellen, was es etwas schwieriger macht, das zu tun, was ich hier versuche. –
Sehr traurig, dass Postgres die Bestellung nicht erhalten kann. Das würde mich auch vor vielen Problemen bewahren! Ich bin in einer ähnlichen Situation und die Sortierreihenfolge ändert sich mehrmals pro Minute, also mache ich die Bestellung in meiner App, um völlig unnötige Datenbankschreibvorgänge zu verhindern. Also Bestellung ist keine Option, – Malte