If en MySQL con selección de columnas

Función if en MySQL

A través de este post voy a ilustrar la función IF en MySQL; la cual funciona similar a los lenguajes de programación pero en forma de función; lo sé, es un poco complicado de decir pero verás que con los ejemplos quedará claro.

Nota: voy a explicar la función if en MySQL, no la sentencia. Me parece que MySQL también cuenta con la sentencia If pero eso es otra historia y se usa sobre todo en funciones, así que seguramente llegaste al post correcto.

If en MySQL

Como lo dije, esta es una función cuya forma básica es:

IF(condicion, enCasoDeQueSeCumpla, enCasoDeQueNo);

Si la condición (primer parámetro) se cumple, regresa el segundo parámetro; en caso de que no, el tercero.

Por lo tanto, la siguiente consulta:

select if(28 > 11, "Verdadero", "Falso");

Va a seleccionar la cadena “Verdadero“, ya que 28 sí es mayor que 11.

Recuerda que la condición puede variar, y que debe dar al final un booleano.

Si quieres probar

Para probar estos ejercicios (aunque al final dejaré un enlace a un fiddle) puedes instalar MySQL con PHP en tu PC; y ver este tutorial de los primeros pasos con MySQL.

En caso de que ya conozcas un poco, puedes omitir los posts recomendados. Al final del post dejaré ejercicios con MySQL.

Ejemplo con datos reales

Veamos otro ejemplo, pero para ello vamos a crear una tabla de personas:

Para demostrar el uso de IF, vamos a hacer que se ponga un mensaje de “Menor de edad” o “mayor de edad” usando If en MySQL; la consulta queda así:

La salida es la siguiente, en donde cuando la edad es menor que 18 se muestra “Menor de edad” y cuando no, “mayor de edad”:

If en MySQL - Mayor y menor de edad
If en MySQL – Mayor y menor de edad

Además de seleccionar simples cadenas, podemos seleccionar campos. Por ejemplo, si es mayor de edad vamos a mostrar el apellido paterno y si no, el materno.

La consulta queda así:

Con la siguiente salida:

If en MySQL con selección de columnas
If en MySQL con selección de columnas

Oh, por cierto, estoy utilizando la sentencia AS para “renombrar” la columna del if.

Condición como resultado de una función

La función If recibe parámetros, pero dichos parámetros pueden ser obtenidos de otras funciones.

Por ejemplo, veamos este ejemplo en donde mostramos un mensaje dependiendo de la letra con la que empieza el nombre; para comparar la letra usamos la función LEFT que corta en una cadena determinado número de caracteres.

La salida es:

MySQL con If - condición como resultado de otra función
MySQL con If – condición como resultado de otra función

La condición que se evalúa viene de llamar a otra función y comparar su resultado.

If anidado en MySQL

Para terminar el tutorial veamos cómo usar un “else if” en MySQL. Podemos anidar las funciones así:

If(condicion, if(otraCondicion, siSeCumple,siNoSecumple),siNoSeCumple );

Así

if(otraCondicion, siSeCumple,if(otraCondicion, siSeCumple,siNoSecumple));

Incluso así:

If(condicion, if(otraCondicion, siSeCumple,siNoSecumple),if(otraCondicion, siSeCumple,siNoSecumple));

Y dentro de cada if puede ir otro if, de manera infinita.

Voy a poner un ejemplo en donde si el nombre no empieza con “L” se compare si empieza con “W”. La consulta SQL queda así:

La comparación que se hace es: if empieza con L, muestra que empieza con L. En caso de que no, compara si comienza con W; en caso de que sí, muestra que comienza con W, y en caso de que no, muestra que no empieza con ninguna de las dos letras.

If anidado en MySQL
If anidado en MySQL

Dentro del “else” del segundo if podría ir otro if, y así sucesivamente.

Conclusión

Te invito a probar más combinaciones con consultas de MySQL; por cierto, todo lo desarrollado aquí se puede probar en este fiddle.

¿Quieres más sobre MySQL? mira estos ejercicios:

Ejercicios con consultas parte 1

Ejercicios con Funciones de cadena

Ejercicios con MySQL parte 3

 

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

4 comentarios en “Función if en MySQL”

Dejar un comentario