Cómo usar la condición IF en una consulta SELECT en Laravel

Cómo usar la condición IF en una consulta SELECT en Laravel

En Laravel, es muy común necesitar aplicar condiciones IF dentro de una consulta SELECT, por ejemplo para mostrar valores personalizados, calcular campos dinámicos o aplicar lógica condicional directamente desde la base de datos.

En este artículo aprenderás cómo usar condiciones IF en consultas SELECT en Laravel, utilizando Eloquent, Query Builder y DB::raw(), con ejemplos claros y prácticos.

💣 Descarga sistemas PHP y Laravel COMPLETOS GRATIS
Recursos premium listos para usar en proyectos reales 💻
👥 +1000 desarrolladores · 🔥 Publicaciones diarias
🔥 Unirme al canal GRATIS ahora 👥 Grupo de Facebook
⏳ Enlaces disponibles por tiempo limitado
💻 Sistemas completos 🔌 Plugins PRO ⚡ Scripts listos 🔥 Recursos exclusivos

Opción 1: Usar IF con DB::raw() (MySQL)

Si usas MySQL, puedes utilizar la función IF() directamente.

Ejemplo básico

use Illuminate\Support\Facades\DB;


$usuarios = DB::table('users')
    ->select(
        'name',
        DB::raw("IF(status = 1, 'Activo', 'Inactivo') AS estado")
    )
    ->get();

Resultado:

  • Si status = 1 → Activo
  • Si status = 0 → Inactivo

Opción 2: Usar CASE WHEN (recomendado y estándar SQL)

CASE WHEN es más portable y funciona en MySQL, PostgreSQL y SQL Server.

Ejemplo con Query Builder

$usuarios = DB::table('users')
    ->select(
        'name',
        DB::raw("
            CASE
                WHEN status = 1 THEN 'Activo'
                ELSE 'Inactivo'
            END AS estado
        ")
    )
    ->get();

Recomendado si trabajas con distintos motores de base de datos.

Opción 3: IF condicional dinámico en Laravel

Si deseas aplicar condiciones solo cuando se cumpla algo, Laravel ofrece el método when().

Ejemplo práctico

$usuarios = DB::table('users')
    ->when(request('status'), function ($query, $status) {
        return $query->where('status', $status);
    })
    ->get();

Este enfoque es ideal para filtros dinámicos en APIs o formularios.

Conclusión

Laravel ofrece múltiples formas de usar condiciones IF en consultas SELECT, ya sea directamente en SQL con IF o CASE, o dinámicamente con when().

  • Elegir la opción correcta dependerá de:
  • El motor de base de datos
  • La complejidad de la consulta
  • El rendimiento esperado

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuarlo!

Promedio de puntuación 5 / 5. Recuento de votos: 1

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Leave a comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *