mameyugo;

, 2 comentarios, 1959 lecturas, por: Jose Manuel Muras Rodrigo

cuanto tiempo ahorrariamos( tiempo de proceso, y de programacion), si la informacion ya nos llegara procesada de mysql (o cualquier sistema gestor de bases de datos, pero mysql mola mas). la respuesta es, MUCHISIMO!!

bien, pues una buena manera de hacer esto es utilizar el sistema gestor de base de datos como algo mas que un simple cajon en donde meter cosas y despues reclamarlas.

como hacemos esto:

supongamos que queremos agrupar en una tabla a todas aquellas personas cuya edad este comprendida entre los 0 y los 18, y otro grupo para el resto de las personas.

partimos de una tabla con el nombre, la edad, el sexo y la estatura.

la query a realizar no contiene distinciones entre edades:

 - si agrupasemos por edad lo unico que conseguiriamos seria una agrupacion por cada una de las edades.

 - si seleccionasemos en la tabla los menores de 18 no tendriamos a toda la gente agrupada simplemente tendriamos una seleccion de los menores de edad.

para solucionar esto podemos recurrir a una consulta total y formatear los datos con un lenguage de programacion como PHP, pero no es eficiente, y ademas nos lleva a escribir mas codigo del que realmente necesitariamos, ya que MySQL nos puede solucionar la papeleta mucho mas facil.

 

 

SELECT nombre, sexo, estatura, edad, if(edad<18,1,0) as edad_agrupada 
FROM personas 
GROUP BY edad_agrupada

 

con esta consulta y un simple if hemos conseguido que todas las personas menores de 18 años esten agrupadas juntas. Ahora para complicar un poco mas el tema esas personas tendran tambien que ser mayores de 10 años

 

SELECT nombre, sexo, estatura, edad, 
if(edad<18,if(edad>10,1,0),0) as edad_agrupada 
FROM personas 
GROUP BY edad_agrupada
 

 

al anidar un if dentro de otro if hemos conseguido el objetivo, ahora solo tendremos que realizar la accion pertinente teniendo en cuenta si el campo edad agrupada es igual a cero o no.

mysql

Comentarios sobre if en consultas mysql

avatar
yayo
11.Nov.2008
(rating: 4)

Que sencillo. Con la de codigo chungo que tengo yo en mi web... Nos vemos en Madrid.

avatar
Derleth
22.Nov.2009
(rating: 4)
muy bueno.. ahora entiendo perfectamente ^^
Unete!