Table of Contents
Cómo usar el operador BETWEEN en MySQL con ejemplos prácticos
En esta entrada aprenderás a utilizar el operador BETWEEN en MySQL. Para ello, trabajaremos con la base de datos tiendaonline, que ya hemos instalado en vídeos anteriores.
El operador BETWEEN se utiliza para filtrar registros dentro de un rango de valores, y puede aplicarse tanto a números como a fechas y texto. También es posible negarlo con NOT BETWEEN para obtener los valores que no cumplen el rango.
Paso 1: Seleccionar la base de datos
Primero nos aseguramos de estar en la base de datos correcta:
USE tiendaonline;
Paso 2: Consultar los datos de prueba
Mostramos todos los pedidos registrados:
SELECT * FROM pedidos;
Y todos los clientes:
SELECT * FROM clientes;
Esto nos da una visión clara de las columnas disponibles, como id_cliente, nombre, total, etc.
Paso 3: Relacionar clientes con pedidos
Para obtener los pedidos junto con el nombre del cliente que los realizó, utilizamos un INNER JOIN. La relación se establece entre:
id_clientede la tablaclientes(clave primaria).id_clientede la tablapedidos(clave foránea).
SELECT p.total, c.nombre
FROM pedidos AS p
INNER JOIN clientes AS c
ON p.id_cliente = c.id_cliente;
👉 Este resultado muestra el nombre del cliente y el importe de cada pedido.
Paso 4: Usar BETWEEN en MySQL
El operador BETWEEN nos permite filtrar registros que estén dentro de un rango específico, incluyendo los valores de los extremos.
Ejemplo: mostrar los pedidos entre 120 y 540 euros:
SELECT p.total, c.nombre
FROM pedidos AS p
INNER JOIN clientes AS c
ON p.id_cliente = c.id_cliente
WHERE p.total BETWEEN 120.00 AND 540.00;
Paso 5: Usar NOT BETWEEN
Si lo que queremos es lo contrario, es decir, los pedidos que no estén dentro del rango, usamos NOT BETWEEN:
SELECT p.total, c.nombre
FROM pedidos AS p
INNER JOIN clientes AS c
ON p.id_cliente = c.id_cliente
WHERE p.total NOT BETWEEN 120.00 AND 540.00;
👉 Esta consulta muestra únicamente los pedidos menores a 120.00 o mayores a 540.00.
Ejemplo con fechas y BETWEEN
El operador BETWEEN también es muy útil al trabajar con fechas. Por ejemplo, si queremos listar todos los pedidos realizados entre el 1 de enero y el 31 de marzo de 2023:
SELECT p.id_pedido, p.fecha_pedido, c.nombre
FROM pedidos AS p
INNER JOIN clientes AS c
ON p.id_cliente = c.id_cliente
WHERE p.fecha_pedido BETWEEN '2023-01-01' AND '2023-03-31';
Esto devuelve todos los pedidos dentro de ese rango de fechas, incluyendo los extremos.
En este tutorial aprendiste a:
- Relacionar tablas con
INNER JOIN. - Usar
BETWEENpara filtrar resultados dentro de un rango. - Usar
NOT BETWEENpara excluir valores del rango. - Aplicar BETWEEN tanto a números como a fechas.
El operador BETWEEN es muy útil cuando necesitamos trabajar con rangos continuos, ya sea de importes, fechas o incluso texto (ordenado alfabéticamente).

📌 Demostración en vídeo: Te mostramos paso a paso cómo aplicar BETWEEN y NOT BETWEEN en tus consultas SQL.
Preguntas frecuentes sobre BETWEEN en MySQL
1. ¿BETWEEN incluye los valores de los extremos?
Sí. Si consultas BETWEEN 120 AND 540, los resultados incluirán también los valores 120 y 540.
2. ¿Se puede usar BETWEEN con texto?
Sí. Por ejemplo:
SELECT nombre FROM clientes
WHERE nombre BETWEEN 'A' AND 'M';
Esto devolverá los clientes cuyos nombres comienzan alfabéticamente entre "A" y "M".
3. ¿Qué diferencia hay entre BETWEEN y operadores lógicos (> y <)?BETWEEN 100 AND 200 es equivalente a >= 100 AND <= 200, pero más legible y claro.
4. ¿Qué diferencia hay entre BETWEEN y IN?
BETWEENbusca valores en un rango continuo.INcompara con una lista específica de valores.
5. ¿Se puede combinar BETWEEN con otras condiciones?
Sí. Por ejemplo:
SELECT * FROM pedidos
WHERE total BETWEEN 200 AND 500
AND fecha_pedido BETWEEN '2023-01-01' AND '2023-06-30';
Esto selecciona pedidos dentro de un rango de totales y fechas al mismo tiempo.
Te puede interesar:
Seguir leyendo:






