Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] ORDER BY "aleatorio" a través de un array

Estas en el tema de ORDER BY "aleatorio" a través de un array en el foro de Mysql en Foros del Web. Estimados amigos, estoy con una duda. Para arrancar cuento que no encontré documentación en el sitio oficial. Googlé bastante y encontré un foro en inglés ...
  #1 (permalink)  
Antiguo 16/05/2013, 07:25
 
Fecha de Ingreso: abril-2012
Mensajes: 30
Antigüedad: 12 años
Puntos: 0
Pregunta ORDER BY "aleatorio" a través de un array

Estimados amigos, estoy con una duda. Para arrancar cuento que no encontré documentación en el sitio oficial. Googlé bastante y encontré un foro en inglés que preguntaba lo mismo, le dieron una opción que me pareció válida pero no funciona en mysql. Foro [URL="http://forums.devshed.com/ms-sql-development-95/sql-order-results-at-selection-from-an-array-141645.html"]aquí[/URL]

Lo que quiero hacer es un SELECT * FROM tabla ORDER BY .......

donde el ORDER BY lo necesito ordenar por los códigos que los tengo en un array.

El usuario va armando el array en forma aleatoria, entonces me queda un array por ejemplo 2,3,1 donde ellos son los códigos primario de "tabla"...

¿Se puede hacer un SELECT y ordenar primero el 2, luego el 3 y por último el 1?

La versión que utilizo MySQL Database Version 5.0.51b.

Ya probé con

SELECT * FROM tabla ORDER BY codigo
WHEN 2 THEN 0
WHEN 3 THEN 1
WHEN 1 THEN 2

pero no funciona....
  #2 (permalink)  
Antiguo 16/05/2013, 07:51
 
Fecha de Ingreso: abril-2012
Mensajes: 30
Antigüedad: 12 años
Puntos: 0
Respuesta: ORDER BY "aleatorio" a través de un array

Por si alguien lo necesita finalmente es así:

SELECT * FROM tabla
WHERE tabla.codigo IN (2,3,1)
ORDER BY FIELD(tabla.codigo,2,3,1)

Última edición por locurafragil; 16/05/2013 a las 09:38

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:34.