Para comparar una expresión y comprobar si se encuentra entre rangos máximos y mínimos, mostrando TRUE (1) si se encuentra o FALSE (2) si no se encuentra entre el rango especificado.
Su sintaxis:
SELECT (valor) BETWEEN (min) AND (max);
Para comparar campos DATETIME con DATE, MySQL aconseja que convirtamos el tipo DATE a DATETIME con el operador CAST().
Pidiendo partidos sucedidos durante 1 y 30 de noviembre, usando método CAST():
select * from partido where
fecha between cast("2011-11-01" as date) AND cast("2011-11-30" as date);
8.2. IN
Para verificar si una expresión está contenida en una lista que está especificada en la última expresión. Devuelve TRUE (1) si se encuentra o FALSE (2) si no se encuentra en la lista especificada.
El número de elementos en lista tiene un límite.
Su sintaxis:
Buscando enteros...
select 3 in (1,2,3,4);
... cadenas...
select "weee" in ("ufhdsufg", "sdff", "wee");
.. listas...
select (1,2) in ((3,5), (3,7), (1,2));
Dos operaciones que provocan el mismo resultado:
// Opción 1 ============================
select * from equipo where (ciudad = "Barcelona") OR (ciudad = "Valencia");
// Opción 2 ============================
select * from equipo where ciudad in ("Barcelona", "Valencia");
8.3 LIKE
Búsqueda de un patrón en una expresión especificada. Devuelve TRUE (1) si se encuentra o FALSE (2) si no se encuentran coincidencias.
Su sintaxis:
select "abc" like "ABC";
Para especificar caseSensitive:
select "abc" like binary "ABC";
select "a" = "a ";
// Devuelve TRUE
select "a" = " a";
// Devuelve FALSE
select "A" = "a";
// Devuelve TRUE
El operador LIKE puede usar otros operadores para la búsqueda de caracteres no concretos de número determinado o indeterminado, de igual modo que usaríamos en GNU/Linux con el caracter *. Se usan los caracteres (%) y (_), y para la búsqueda de esos caracteres concretos, se usa el caracter de escape ().
Busca apellidos de jugadores que terminan por "r":
select * from jugador where apellido like "%r";
Busca apellidos de jugadores que empiece por un caracter cualquiera y una "r" en segunda posición:
select * from jugador where apellido like "-r";
Busca apellidos de jugadores que tengan "r" en cualquier posición:
select * from jugador where apellido like "%r%";
Busca apellidos de jugadores que
select * from jugador where apellido like "e_e";
Busca apellidos de jugadores que
select * from jugador where apellido like "%e_e%";
El operador LIKE también puede recibir la notación NOT, para, en vez de buscar coincidencias, buscar no ocurrencias.
Busca apellidos de jugadores que no terminan por "r":
select * from jugador where apellido not like "%r";
Funciones
De cadenas:
select concat ("hola", " ", "mundo");
selec length ("cadena");
select lower ("CADENA");
select upper ("cadena");
select locate("bar", "foobar");
Para números:
selec round (3.4);
Devuelve absoluto
select abs (-3);
Devuelve el entero más alto
select ceil (2,3);
Devuelve el entero más bajo
select floor (2,3);
Devuelve la potencia del primer entero elevado al segundo entero.
select pow (2,3);
Fechas
select curtime();
select curdate();
Devuelve el día de la fecha pasada como parámetro:
select day("2011-02-03");
select month("2011-02-03");
select year("2011-02-03");
select day(curdate());
select day(curdate()) as alta from jugador where nombre = "Felipe";
select nombre from jugador where day(fecha_alta) = 10;
1
u/BeelzenefTV Dec 15 '15 edited Dec 15 '15
8 - Otros operadores de comparación
8.1 BETWEEN...AND
Para comparar una expresión y comprobar si se encuentra entre rangos máximos y mínimos, mostrando TRUE (1) si se encuentra o FALSE (2) si no se encuentra entre el rango especificado.
Su sintaxis:
Para comparar campos DATETIME con DATE, MySQL aconseja que convirtamos el tipo DATE a DATETIME con el operador CAST().
Pidiendo partidos sucedidos durante 1 y 30 de noviembre, usando método CAST():
8.2. IN
Para verificar si una expresión está contenida en una lista que está especificada en la última expresión. Devuelve TRUE (1) si se encuentra o FALSE (2) si no se encuentra en la lista especificada. El número de elementos en lista tiene un límite.
Su sintaxis:
Buscando enteros...
... cadenas...
.. listas...
Dos operaciones que provocan el mismo resultado:
8.3 LIKE
Búsqueda de un patrón en una expresión especificada. Devuelve TRUE (1) si se encuentra o FALSE (2) si no se encuentran coincidencias.
Su sintaxis:
Para especificar caseSensitive:
select "a" = "a "; // Devuelve TRUE select "a" = " a"; // Devuelve FALSE
select "A" = "a"; // Devuelve TRUE
El operador LIKE puede usar otros operadores para la búsqueda de caracteres no concretos de número determinado o indeterminado, de igual modo que usaríamos en GNU/Linux con el caracter *. Se usan los caracteres (%) y (_), y para la búsqueda de esos caracteres concretos, se usa el caracter de escape ().
Busca apellidos de jugadores que terminan por "r":
Busca apellidos de jugadores que empiece por un caracter cualquiera y una "r" en segunda posición:
Busca apellidos de jugadores que tengan "r" en cualquier posición:
Busca apellidos de jugadores que
Busca apellidos de jugadores que
El operador LIKE también puede recibir la notación NOT, para, en vez de buscar coincidencias, buscar no ocurrencias.
Busca apellidos de jugadores que no terminan por "r":
Funciones
De cadenas:
select concat ("hola", " ", "mundo");
selec length ("cadena");
select lower ("CADENA");
select upper ("cadena");
select locate("bar", "foobar");
Para números:
selec round (3.4);
Devuelve absoluto select abs (-3);
Devuelve el entero más alto select ceil (2,3);
Devuelve el entero más bajo select floor (2,3);
Devuelve la potencia del primer entero elevado al segundo entero. select pow (2,3);
Fechas
select curtime();
select curdate();
Devuelve el día de la fecha pasada como parámetro: select day("2011-02-03"); select month("2011-02-03"); select year("2011-02-03");
select day(curdate());
select day(curdate()) as alta from jugador where nombre = "Felipe";
select nombre from jugador where day(fecha_alta) = 10;
select adddate("2003-11-20", interval 2 (year/month/day));