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

ORdenar por dos campos diferentes

Estas en el tema de ORdenar por dos campos diferentes en el foro de Mysql en Foros del Web. Alguien tiene idea de como se podría hacer algo así? $result=mysql_query("SELECT * FROM tabla ORDER by mes DESC AND dia ASC ", $conection);...
  #1 (permalink)  
Antiguo 26/09/2011, 09:26
 
Fecha de Ingreso: febrero-2008
Mensajes: 120
Antigüedad: 12 años, 6 meses
Puntos: 1
ORdenar por dos campos diferentes

Alguien tiene idea de como se podría hacer algo así?

$result=mysql_query("SELECT * FROM tabla ORDER by mes DESC AND dia ASC", $conection);
__________________
http://www.multigestor.com - Diseño Web Lleida
  #2 (permalink)  
Antiguo 26/09/2011, 09:37
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 12 años, 8 meses
Puntos: 2656
Respuesta: ORdenar por dos campos diferentes

Los campos por los que debe ordenar se separan por comas, no por operadores lógicos.
Código MySQL:
Ver original
  1. SELECT * FROM tabla ORDER by mes DESC, dia ASC
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 26/09/2011, 09:39
 
Fecha de Ingreso: febrero-2008
Mensajes: 120
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: ORdenar por dos campos diferentes

correcto, pero aun así no funciona
__________________
http://www.multigestor.com - Diseño Web Lleida
  #4 (permalink)  
Antiguo 26/09/2011, 10:25
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 13 años, 7 meses
Puntos: 447
Respuesta: ORdenar por dos campos diferentes

hola kadet:

No sé a que te refieres cuando dices que la consulta del compañero gnzsoloyo no funciona... La consulta funciona perfectamente, y aquí está el script para demostrarlo.

Código MySQL:
Ver original
  1. mysql> CREATE TABLE TuTabla (mes INT, dia INT);
  2. Query OK, 0 rows affected (0.08 sec)
  3.  
  4. mysql> INSERT INTO TuTabla VALUES (1, 25), (1, 1),
  5.     -> (10, 20), (6, 30), (1, 31), (8, 2), (6, 17),
  6.     -> (10, 24), (10, 1);
  7. Query OK, 9 rows affected (0.06 sec)
  8. Records: 9  Duplicates: 0  Warnings: 0
  9.  
  10. mysql> SELECT * FROM TuTabla;
  11. +------+------+
  12. | mes  | dia  |
  13. +------+------+
  14. |    1 |   25 |
  15. |    1 |    1 |
  16. |   10 |   20 |
  17. |    6 |   30 |
  18. |    1 |   31 |
  19. |    8 |    2 |
  20. |    6 |   17 |
  21. |   10 |   24 |
  22. |   10 |    1 |
  23. +------+------+
  24. 9 rows in set (0.00 sec)
  25.  
  26. mysql> SELECT * FROM TuTabla ORDER BY mes DESC, dia ASC;
  27. +------+------+
  28. | mes  | dia  |
  29. +------+------+
  30. |   10 |    1 |
  31. |   10 |   20 |
  32. |   10 |   24 |
  33. |    8 |    2 |
  34. |    6 |   17 |
  35. |    6 |   30 |
  36. |    1 |    1 |
  37. |    1 |   25 |
  38. |    1 |   31 |
  39. +------+------+
  40. 9 rows in set (0.01 sec)

Ahora bien, si esto no es lo que quieres obtener como salida deberías aclararlo, ya que tal como pones tu pregunta esto es correcto. Tampoco dices de qué tipo de datos son tus columnas, estoy suponiendo que se trata de enteros, pero si los estás manejando por cadenas te recuerdo que estas NO SE ORDENAN IGUAL QUE LOS NÚMEROS, sino que lo hacen de manera alfabética, por lo que tendrías problemas con el 1 y el 10:

Código MySQL:
Ver original
  1. mysql> CREATE TABLE TuTabla (mes VARCHAR(2), dia VARCHAR(2));
  2. Query OK, 0 rows affected (0.14 sec)
  3.  
  4. mysql> INSERT INTO TuTabla VALUES ('1', '25'), ('1', '1'),
  5.     -> ('10', '20'), ('6', '30'), ('1', '31'), ('8', '2'), ('6', '17'),
  6.     -> ('10', '24'), ('10', '1');
  7. Query OK, 9 rows affected (0.09 sec)
  8. Records: 9  Duplicates: 0  Warnings: 0
  9.  
  10. mysql> SELECT * FROM TuTabla;
  11. +------+------+
  12. | mes  | dia  |
  13. +------+------+
  14. | 1    | 25   |
  15. | 1    | 1    |
  16. | 10   | 20   |
  17. | 6    | 30   |
  18. | 1    | 31   |
  19. | 8    | 2    |
  20. | 6    | 17   |
  21. | 10   | 24   |
  22. | 10   | 1    |
  23. +------+------+
  24. 9 rows in set (0.00 sec)
  25.  
  26. mysql> SELECT * FROM TuTabla ORDER BY mes DESC, dia ASC;
  27. +------+------+
  28. | mes  | dia  |
  29. +------+------+
  30. | 8    | 2    |
  31. | 6    | 17   |
  32. | 6    | 30   |
  33. | 10   | 1    |
  34. | 10   | 20   |
  35. | 10   | 24   |
  36. | 1    | 1    |
  37. | 1    | 25   |
  38. | 1    | 31   |
  39. +------+------+
  40. 9 rows in set (0.00 sec)

Y para la próxima, cuando digas que algo de lo que aquí se pone como solución no sirve, tomate 5 minutos para explicar qué es lo que está fallando, sino lo haces es casi imposible tratar de ayudar.

Saludos
Leo.
  #5 (permalink)  
Antiguo 26/09/2011, 11:17
 
Fecha de Ingreso: febrero-2008
Mensajes: 120
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: ORdenar por dos campos diferentes

Oye, no te enojes tanto, no es sano.

Saludos desde ESPAÑA!!!!



gracias por lasa respuestas
__________________
http://www.multigestor.com - Diseño Web Lleida
  #6 (permalink)  
Antiguo 26/09/2011, 13:14
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 12 años, 8 meses
Puntos: 2656
Respuesta: ORdenar por dos campos diferentes

¿Y al final qué estabas haciendo mal? ¿Tenías los campos como caracteres, o estabas escribiendo mal algo?

__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 26/09/2011, 13:16
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 13 años, 7 meses
Puntos: 447
Respuesta: ORdenar por dos campos diferentes

Jejeje, para nada estoy enojado... simplemente quería hacer notar que tu comentario dejaba muchos puntos en el aire... una disculpa si el tono de mi nota no fue el apropiado...

Saludos desde México
Leo

Etiquetas: campos, query, select, sql, tabla
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 10:08.