[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.

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

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

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


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.

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

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.

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

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

Related posts:

  1. [Manual] Order by en MySQL parte 1 Casi no he escrito sobre MySQL, sin embargo el otro...
  2. [Manual] Usando PHP y MySQL, Insertando datos de manera dinamica parte 2 Bueno como vimos en el manual anterior de Php y...
  3. [Manual] Usando PHP y MySQL,para manejar una base de datos parte 1 Varios lectores me han pedido que si no hacia un...
  4. [Manual] Transformacion de fechas MySql a PHP El otro dia en la programacion de una pagina web,...
  5. [Manual - Codeigniter] Programando php en MVC con CodeIgniter [Parte 1] Antes de empezar con este post, quiero ofrecer disculpas ya...

Related posts brought to you by Yet Another Related Posts Plugin.

One Response

11.19.2009

Muchas gracias carnal.. lo que andaba buscando =D

Comentar

* Name, Email, Comment are Required

Mis Tweets Ajaxman


Categorias

Historico de entradas publicadas