DevPath · Aprende a programar ESPTEN

Filtrado avanzado

IN, BETWEEN, LIKE e IS NULL

IN: pertenecer a una lista

IN comprueba si un valor está dentro de una lista. Es una forma compacta de escribir varios OR sobre la misma columna:

-- Equivale a categoria = 'audio' OR categoria = 'pantallas'
SELECT * FROM productos
WHERE categoria IN ('audio', 'pantallas');

-- También con NOT IN para excluir
SELECT * FROM productos
WHERE categoria NOT IN ('audio', 'pantallas');

BETWEEN: un rango (inclusivo)

BETWEEN a AND b selecciona valores entre a y b, incluyendo ambos extremos:

-- precio >= 40 AND precio <= 150
SELECT * FROM productos
WHERE precio BETWEEN 40 AND 150;

LIKE: patrones de texto

LIKE busca textos que encajen con un patrón, usando dos comodines:

Comodín Coincide con
% cualquier secuencia de caracteres (incluida la vacía)
_ un carácter exactamente
SELECT * FROM productos WHERE nombre LIKE 'A%';    -- empieza por A
SELECT * FROM productos WHERE nombre LIKE '%or';   -- termina en "or"
SELECT * FROM productos WHERE nombre LIKE '%cro%'; -- contiene "cro"
SELECT * FROM productos WHERE nombre LIKE 'R_t__'; -- R + 1 + t + 2 = "Raton"

IS NULL / IS NOT NULL

NULL representa la ausencia de valor y es especial: no se compara con =. Para detectarlo se usa IS NULL (o IS NOT NULL):

SELECT * FROM productos WHERE stock IS NULL;      -- sin dato de stock
SELECT * FROM productos WHERE stock IS NOT NULL;  -- con dato de stock

Ojo: columna = NULL nunca es verdadero, ni siquiera para los nulos. Siempre IS NULL.

Pon esto en práctica

DevPath es un curso práctico: aquí lees la teoría; en la app la pones en práctica con ejercicios que se ejecutan de verdad, sin conexión.

Empezar gratis en la app →
← Operadores lógicos y de comparaciónDISTINCT y LIMIT / OFFSET →