mysql

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:

create table personas(
  nombre varchar(255),
  apellido_paterno varchar(255),
  apellido_materno varchar(255),
  edad int
);

insert into personas 
values
('Luis', 'Cabrera', 'Benito', 21),
('Hank', 'Rearden', 'Lecter', 15),
('Elliot', 'Alderson', 'Mercury', 18),
('Walter', 'White', 'Taggart', 12);

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í:

select nombre, edad, if(edad >= 18, "Mayor de edad", "Menor de edad") as estado
from personas;

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

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í:

select nombre, 
edad,
apellido_paterno,
apellido_materno,
if(edad >= 18, apellido_paterno, apellido_materno) as apellido
from personas;

Con la siguiente salida:

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.

select nombre, 
if(left(nombre, 1) = "L", "Empieza con L", "No empieza con L") as texto
from personas;

La salida es:

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í:

if(
  left(nombre, 1) = "L", 
  "Empieza con L", 
  if(left(nombre, 1) = "W", "Empieza con W", "No empieza con L ni con W")
) as texto
from personas;

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

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

 

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

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

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

Entradas recientes

Servidor HTTP en Android con Flutter

El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…

3 días hace

Imprimir automáticamente todos los PDF de una carpeta

En este post te voy a enseñar a designar una carpeta para imprimir todos los…

4 días hace

Guía para imprimir en plugin versión 1 desde Android

En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…

1 semana hace

Añadir tasa de cambio en sistema de información

Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…

2 semanas hace

Comprobar validez de licencia de plugin ESC POS

Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…

2 semanas hace

Imprimir euro € en impresora térmica

Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…

3 semanas hace

Esta web usa cookies.