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

Ordenar numeros de una consulta

Estas en el tema de Ordenar numeros de una consulta en el foro de Mysql en Foros del Web. Hola a todos, tengo una consulta que devuelve un campo numerico con solo 3 posibilidades: -1, 0 y 1. Cuando ordeno por estos números me ...
  #1 (permalink)  
Antiguo 28/08/2012, 05:57
Avatar de altex  
Fecha de Ingreso: septiembre-2008
Ubicación: En mi casa
Mensajes: 47
Antigüedad: 15 años, 7 meses
Puntos: 4
Ordenar numeros de una consulta

Hola a todos,

tengo una consulta que devuelve un campo numerico con solo 3 posibilidades:

-1, 0 y 1.

Cuando ordeno por estos números me lo ordena de menor a mayor (como yo le digo), pero.. ¿hay alguna posibilidades de que se pueda ordenar de otra manera?

Ahora me sale:

-1
0
1

Puede ser que salga:

0
1
-1

directamente desde la consulta, ¿o tendré que hacerlo en php de alguna manera?
  #2 (permalink)  
Antiguo 28/08/2012, 09:47
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Ordenar numeros de una consulta

Hola altex:

Te habrás dado cuenta que el ORDER BY simple no te sirve, aun utilizando DESC

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla ORDER BY campo;
  2. +-------+
  3. | campo |
  4. +-------+
  5. |    -1 |
  6. |     0 |
  7. |     1 |
  8. +-------+
  9. 3 rows in set (0.00 sec)
  10.  
  11. mysql> SELECT * FROM tabla ORDER BY campo DESC;
  12. +-------+
  13. | campo |
  14. +-------+
  15. |     1 |
  16. |     0 |
  17. |    -1 |
  18. +-------+
  19. 3 rows in set (0.00 sec)

Sin embargo, hay una manera en que puedes hacer esto... en realidad lo que quieres hacer seria que cuando el valor del campo sea -1 se comporte como si fuera un número más grande que 1, para que se posiciones después del uno... esto lo puedes hacer así:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla
  2.     -> ORDER BY IF(campo = -1, 2, campo);
  3. +-------+
  4. | campo |
  5. +-------+
  6. |     0 |
  7. |     1 |
  8. |    -1 |
  9. +-------+
  10. 3 rows in set (0.17 sec)

Lo que haces es "convertir" los registros con -1 a un 2, para que se ordenen después de los 0's y los 1's... creo que esto te debe servir.

Saludos
Leo.
  #3 (permalink)  
Antiguo 28/08/2012, 10:17
Avatar de altex  
Fecha de Ingreso: septiembre-2008
Ubicación: En mi casa
Mensajes: 47
Antigüedad: 15 años, 7 meses
Puntos: 4
Respuesta: Ordenar numeros de una consulta

Si, funciona!!

Gracias, no sabia como hacerlo :)
  #4 (permalink)  
Antiguo 28/08/2012, 10:21
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Ordenar numeros de una consulta

Jejeje... un pequeño truco que estoy seguro te servirá para otras cosas.

Saludos
Leo.

Etiquetas: numeros, php, campos
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 17:59.