2012-03-05 13 views
14

tengo tabla:¿Es posible seleccionar manualmente el pedido en la consulta de MySQL?

table1 
------------ 
id | name 
------------ 
1 | John 
2 | Steeve 
3 | Walter 
4 | Daniel 
5 | Jeremy 
6 | Carmelo 
... 

Lo que necesito es seleccionar de la mesa con el fin entro manualmente, por ejemplo, id 5,3,6,1,4,2

SELECT * FROM talbe1 ORDER BY (5,3,6,1,4,2) 

¿Es posible de alguna manera? Gracias!

+0

La única solución que se me ocurre es tener otra tabla que mapea la clave del orden de clasificación y luego únete a esa mesa O bien, para evitar la unión, agregue una tercera columna que se usará solo para ordenar. – knittl

+0

¿Cuál es la necesidad/lógica detrás de esta secuencia? – diEcho

Respuesta

25

Puede utilizar ORDER BYFIELD:

SELECT * FROM talbe1 ORDER BY FIELD(id, 5,3,6,1,4,2) 
+0

se indica en el enlace dado que 'FIELD' devuelve el índice (posición) de' str' en la lista 'str1, str2, str3, ...'. Devuelve ** 0 ** si str no se encuentra. ¿elaborarás cómo esta consulta usa esta función? – diEcho

+0

Gracias Marcar mucho, hasta ahora he probado que está funcionando genial! – woopata

1

es probable que pueda probar esto:

SELECT * FROM talbe1 ORDER BY FIELD(id,'5','3','6','1','4','2') 
Cuestiones relacionadas