Video tutorial sobre el operador SQL BETWEEN con MySql

OPERADOR SQL BETWEEN

BETWEEN es un operador muy útil a utilizar dentro de la claúsula WHERE, para especificar un rango de valores inclusivos. Se utiliza normalmente con fechas pero también se puede usar con strings y con números.

SINTAXIS DEL OPERADOR SQL BETWEEN

SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;

EJEMPLO DEL OPERADOR SQL BETWEEN

Para nuestro ejemplo, utilizaremos nuestra tabla "authors":

Con la siguiente sentencia SQL, queremos seleccionar los autores nacidos entre el 2 de febrero de 1971 y el 1 de enero de 1985:

SELECT * FROM eli.authors WHERE birthday BETWEEN '1971-02-02' AND '1985-01-01';

Obteniendo el siguiente resultado;

Utilizando el operador BETWEEN, podemos ver que nos devuelve los mismos resultados que los operadores "mayor o igual" (>=) y "menor o igual" (<=). Es importante recordar que el operador BETWEEN es inclusivo.


Se puede utilizar BETWEEN con más tipos de datos además de fechas, como por ejemplo texto;

A continuación tenemos la tabla "books", que vamos a usar para este ejemplo;

Queremos seleccionar los registros que su título empieza con la letra "a" a la "s";

SELECT * FROM eli.books WHERE title BETWEEN 'a' and 's';

Obtendremos en los resultados los títulos que empiezan con la "a", la "b", etc hasta la "r", que es la última letra antes de la "s". Sin embargo no obtendremos resultados que empiecen con la letra "s". Obtendriamos un registro, en el caso de que hubiera un título compuesto de la letra "s" solamente. Cualquier título que empiece con la letra "s" y un sólo caracter más, es mayor que la "s" y está fuera del rango de valores.


Uso del operador NOT con el operador BETWEEN:

Podemos utilizar el operador BETWEEN en conjunción con el operador NOT. En este caso SQL selecciona el valor que no esté en el rango especificado.

De nuestra tabla "publisher";

Vamos a seleccionar los nombres de los editores, que tengan un número de teléfono que no esté dentro del rango "4999" y "5010";

SELECT name FROM eli.publisher where phone not between '4999' and '5010';
<< Anterior Siguiente >>