[Manual] Order by en MySQL parte 2

En el capitulo anterior de el manual de la clausula order by de MySQL aprendimos el uso basico del mismo ahora vayamos a lo mas avanzado y a lo mas interesante.

Entonces tenemos la tabla he hicimos algunas consultas con la clausual order by.

La tabla original

Programadores
Nombre
Telefono
Color
ID
Douglas
44444548
verde
5
Brendan
23131542
gris
2
Dean
58964121
verde
3
Linus
59684211
azul
1
Jhon
14524695
azul
4

Y luego hicimos la siguiente ordenacion por ID de forma descendente

select * from Programadores order by ID desc 

Hasta ahi hibamos bien ok ahora como si queremos que se ordene por colores haremos lo siguiente.

select * from Programadores order by Color asc

Obviamente la order es por orden alfabetico en la columna color y obtenemos lo siguiente.

NombreTelefonoColorID
Linus59684211azul1
Jhon14524695azul4
Brendan23131542gris2
Dean58964121verde3
Douglas44444548verde5

Bien ahora que pasaria si quisieramos que tambien ordenara los telefonos el mas pequeño (111111) iria primero y el mas grande (9999999) iria despues, obviamente tambien se ordenarian los colores entonces la consulta seria de esta manera.

select * from Programadores order by Color asc, telefono asc

Lo cual nos arroja el siguiente resultado

NombreTelefonoColorID
Jhon14524695azul4
Linus59684211azul1
Brendan23131542gris2
Douglas44444548verde5
Dean58964121verde3


Como pudimos ver podemos agregarle varios campos a ordenar en el ejemplo se trata de 5 registros sin embargo en tablas con varios cientos o miles de registros nos resultara muy util

Pero que pasaria si lo que deseo es que se ordenen por color y el primer color sea el verde, luego el azul y por ultimo el gris.

Si usamos esta consulta

select * from Programadores order by Color desc

Nos arrojara esto.

NombreTelefonoColorID
Dean58964121verde3
Douglas44444548verde5
Brendan23131542gris2
Linus59684211azul1
Jhon14524695azul4

Y si la asecemos ASC (ascendente) estara exactanemte igual solo que al reves(pueden checarlo) de todos modos siempre permanecera el mismo orden, digamos alfabeticamente
a,b,c,d…,g,h,..v..z o al reves z,y,x,w,v…g,f…b,a

¿Entonces como le hago?

Pues esto fue lo que descubri ya que no se si se deba hacer asi o haya otra forma, de todos modos sirve.

Primero hay que indicarle que necesitamos el verde, luego el azul y ultimo el gris

el SQL seria

select * from Programadores order by
Color=”verde” desc, Color=”azul” desc , Color=”gris” desc

Uso desc para decirle que siempre el orden sera como los estoy anotando.
Con esta forma obtendremos lo que queriamos y sera asi.

NombreTelefonoColorID
Dean58964121verde3
Douglas44444548verde5
Linus59684211azul1
Jhon14524695azul4
Brendan23131542gris2

Como pudieron observar el resultado fue satisfactorio, asi que ya saben si el orden es el problema primero cheken ajaxman.net a ver que hay.

Espero que este articulo les sea de mucha ayuda.

Nota prueben con muchos datos y veran que es muy util

Fin del manal de Order by

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *