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:
- [Manual] Order by en MySQL parte 1 Casi no he escrito sobre MySQL, sin embargo el otro...
- [Manual] Usando PHP y MySQL, Insertando datos de manera dinamica parte 2 Bueno como vimos en el manual anterior de Php y...
- [Manual] Usando PHP y MySQL,para manejar una base de datos parte 1 Varios lectores me han pedido que si no hacia un...
- [Manual] Transformacion de fechas MySql a PHP El otro dia en la programacion de una pagina web,...
- [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
Muchas gracias carnal.. lo que andaba buscando =D