Questa domanda ha un po 'di storia — Is there a way to make a query respect the order of the inputted parameters?Rendere PostgreSQL rispetto dell'ordine dei parametri immessi?
Sono nuovo di costruire query "specializzate", così ho pensato che se io fornisco una clausola IN
come parte di una query SELECT
, che restituisca risultati nella stessa ordine. Sfortunatamente non è così.
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]
(non includeva il passaggio in cui ho usato Python per scorrere il risultato e aggiungere gli ID a un elenco.)
Quindi la domanda è: esiste un modo per rendere Postgres rispettare la l'ordine dei parametri forniti in una clausola IN
restituendo i risultati lo stesso ordine?
Grazie per la risposta. Ho lasciato molto su come funziona la mia applicazione. Per farla breve, una classifica non corrisponde solo ad un artista, ma può corrispondere a qualsiasi numero di tipi di oggetto che gli diamo. Detto questo, sto usando i generici di Django per creare quelle relazioni che rendono un po 'più difficile fare ciò che sto cercando di fare qui. –
Molto triste che Postgres non possa mantenere l'ordine. Questo mi salverebbe anche da molti problemi! Mi trovo in una situazione simile e l'ordinamento cambia più volte al minuto, quindi sto facendo l'ordine nella mia app per evitare scritture di database del tutto inutili. Quindi ordinare per non è un'opzione, – Malte