Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/02/2009, 12:17
Avatar de Taldreakan
Taldreakan
 
Fecha de Ingreso: julio-2008
Mensajes: 128
Antigüedad: 16 años, 8 meses
Puntos: 2
ORDER BY (lista arbitraria de ids)

Paso a explicar lo que quiero:

Tengo una consulta de este tipo:

Código:
SELECT * FROM tabla WHERE id_tabla IN (5, 2, 8, 3);
Asi me sale:
================
id_tabla nombre
================
2 Mamiferos
3 Gatos
5 Animales
8 Felinos


Pero lo necesito asi:
================
id_tabla nombre
================
5 Animales
2 Mamiferos
8 Felinos
3 Gatos

Supongo que se puede hacer con un GROUP BY, pero no veo por donde.
Tal vez se pueda pasar la lista (5, 2, 8, 3) y que me ordene como estan enlistados solo que no he encontrado la forma.

Existe una solucion, que es partir el SELECT en varios y con UNION juntar las salidas.

Código:
SELECT * FROM tabla WHERE id_tabla = 5
UNION
SELECT * FROM tabla WHERE id_tabla = 2
UNION
SELECT * FROM tabla WHERE id_tabla = 8
UNION
SELECT * FROM tabla WHERE id_tabla = 3
De esta manera me salen los resultados ordenados como quiero, pero no creo que sea muy funcional si tengo una lista de mas de 20 elementos.

Creo que esto es una forma de ordenacion arbitraria.
__________________
La inteligencia viene detras de mi, pero yo corro mas que ella.