Esta pregunta tiene un poco de historia — Is there a way to make a query respect the order of the inputted parameters?Hacer que PostgreSQL respete el orden de los parámetros ingresados?
Soy nuevo en la construcción de consultas "especializados", por lo que supone que si yo proporciono una cláusula IN
como parte de una consulta SELECT
, que va a volver resultados de la misma orden. Desafortunadamente ese no es el caso.
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]
(No incluir la etapa donde solía Python para recorrer el resultado y anexar los ID de una lista.)
Así que la pregunta es, ¿hay una manera de hacer respetar la Postgres orden de los parámetros dados en una cláusula IN
al devolver los resultados mismo orden?
Gracias por su respuesta. Dejé mucho sobre cómo funciona mi aplicación. Para resumir, una clasificación no solo corresponde a un artista, sino que puede corresponder a cualquier cantidad de tipos de objetos que le demos. Dicho esto, estoy usando los genéricos de Django para crear esas relaciones, lo que hace que sea un poco más difícil hacer lo que estoy tratando de hacer aquí. –
Es muy triste que Postgres no pueda conservar el orden. ¡Esto también me salvaría de muchos problemas! Estoy en una situación similar y el orden de clasificación cambia varias veces por minuto, por lo que estoy haciendo el pedido en mi aplicación para evitar escrituras de bases de datos totalmente innecesarias. Entonces, ordenar por no es una opción, – Malte