Ver Mensaje Individual
  #2 (permalink)  
Antiguo 28/08/2012, 09:47
leonardo_josue
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.