Ver Mensaje Individual
  #4 (permalink)  
Antiguo 31/01/2013, 10:01
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Query SELECT ORDER según casos

Hola de nuevo Wolfchamane:

No entiendo donde está la complicación... con los datos que pones de ejemplo, en realidad la ordenación es simple, no tienes que hacer ningún tratamiento adicional.

Suponiendo que tienes estos datos

Código MySQL:
Ver original
  1. mysql> SELECT * FROM peliculas;
  2. +------+----------------+------+------+
  3. | id   | titulo         | saga | o    |
  4. +------+----------------+------+------+
  5. |    1 | Star Wars Ep.1 |    1 |    1 |
  6. |    2 | Star Wars Ep.2 |    1 |    2 |
  7. |    3 | Star Wars Ep.3 |    1 |    3 |
  8. |    4 | Saw 1          |    1 |    1 |
  9. |    5 | Saw 3          |    1 |    3 |
  10. |    6 | Saw 4          |    1 |    4 |
  11. |    7 | Saw 2          |    1 |    2 |
  12. |    8 | Armaggedon     |    0 |    1 |
  13. |    9 | Otra peli      |    1 |    1 |
  14. |   10 | Otra peli      |    0 |    1 |
  15. |   11 | Otra peli      |    0 |    1 |
  16. |   12 | Otra peli      |    1 |    2 |
  17. +------+----------------+------+------+
  18. 12 rows in set (0.00 sec)

Tu puedes hacer algo como esto:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM peliculas ORDER BY titulo, saga, o;
  2. +------+----------------+------+------+
  3. | id   | titulo         | saga | o    |
  4. +------+----------------+------+------+
  5. |    8 | Armaggedon     |    0 |    1 |
  6. |   11 | Otra peli      |    0 |    1 |
  7. |   10 | Otra peli      |    0 |    1 |
  8. |    9 | Otra peli      |    1 |    1 |
  9. |   12 | Otra peli      |    1 |    2 |
  10. |    4 | Saw 1          |    1 |    1 |
  11. |    7 | Saw 2          |    1 |    2 |
  12. |    5 | Saw 3          |    1 |    3 |
  13. |    6 | Saw 4          |    1 |    4 |
  14. |    1 | Star Wars Ep.1 |    1 |    1 |
  15. |    2 | Star Wars Ep.2 |    1 |    2 |
  16. |    3 | Star Wars Ep.3 |    1 |    3 |
  17. +------+----------------+------+------+
  18. 12 rows in set (0.00 sec)

es decir, simplemente listas todos los campos por los que quieres ordenar... en este caso, en primer lugar por el título, después por la saga y al final por el campo orden. En realidad no sé que función tenga el campo SAGA, por lo menos para los datos que pones de ejemplo no sirve absolutamente para nada... yo agregué 4 registros con el título "Otra peli" donde pongo dos registros como parte de una saga y dos sin ser parte de una... aunque tienen la misma descripción primero colocará aquellos que no forman parte de una saga y al final los que si...

Si esto no te sirve entonces tendrías que colocar datos donde la ordenación no se esté efectuando como quieres...

Saludos
Leo.