Mysql en consulta

Mysql en consulta
En el mundo de las bases de datos, las consultas son una de las cosas constantes que todos implementamos. Aunque SQL tiene formas y convenciones para realizar consultas específicas, a veces requiere que establezcamos condiciones personalizadas.

Uno de los operadores condicionales populares y útiles en SQL es el operador en. Usando el operador in, podemos obtener un valor booleano si un valor específico está en una lista.

Este tutorial lo guiará a través del operador In y cómo usarlo para crear condiciones personalizadas para consultas SQL.
Antes de comenzar, suponemos que tiene un servidor MySQL instalado y configurado en su sistema, y ​​tiene una base de datos de muestra con la que trabajar.

Para obtener una versión de muestra de una base de datos MySQL, considere la base de datos Sakila del recurso que se proporciona a continuación:

https: // dev.mysql.com/doc/index-other.html

Uso básico

Si no está familiarizado, MySQL en la declaración le permite determinar si un valor está dentro de un conjunto de valores. Devuelve principalmente un valor booleano con 1 (verdadero) si el valor está en el conjunto y 0 (falso) si el valor no está en el conjunto.

La sintaxis general de la declaración es:

Seleccione column_name de table_name donde (expresión | column_name) en ("value1, value2 ...)

Como puede ver en la sintaxis anterior, la lista de valores se separa con comas dentro del operador en.

Puede usar una expresión o un nombre de columna con el operador in dentro de la instrucción Where.

NOTA: Evite combinar valores citados como cadenas y valores no cotizados, como números, ya que la comparación difiere para varios tipos. A continuación se muestra un ejemplo de uso no válido de la consulta IN:

Seleccione column_name de table_name donde value1 en ("a", 10, 10);

Una vez que se ejecuta una consulta como la anterior:

  1. Los valores se evalúan en función del tipo de columna o resultado de expresión especificado.
  2. Luego, los valores se clasifican y finalmente, se completa una búsqueda utilizando una búsqueda binaria. Esto asegura que la búsqueda sea rápida con errores mínimos.

Los valores nulos devuelven un valor nulo.

Caso de uso de ejemplo

Ilustramos cómo usar el operador en ejemplos.

Comencemos con una comparación simple que no requiere una base de datos. Considere la siguiente declaración:

Seleccione 10 in (5, 15, 25, 35);

Si ejecuta la consulta anterior en un shell mySQL, obtendrá 0 (falso), lo que indica que el valor 10 no está en el conjunto proporcionado de valores.

mysql> seleccionar 10 in (5, 15, 25, 35);
+-----------------------+
| 10 in (5, 15, 25, 35) |
+-----------------------+
| 0 |
+-----------------------+
1 fila en el set (0.00 seg)

El caso también es cierto si el valor que estamos buscando está en el conjunto. En este caso, un 1 (verdadero) se devuelve como se ilustra en la consulta a continuación:

Seleccione 35 in (5, 15,25,35);

La salida será como se muestra a continuación:

mySQL> seleccione 35 in (5, 15,25,35);
+---------------------+
| 35 in (5, 15,25,35) |
+---------------------+
| 1 |
+---------------------+
1 fila en el set (0.00 seg)

Supongamos que tiene una tabla llamada película (consulte la base de datos de Sakila) con filas como se muestra a continuación:

+----------------------+
| Campo |
+----------------------+
| Film_id |
| título |
| Descripción |
| Release_year |
| lenguaje_id |
| original_language_id |
| Rental_duration |
| alquiler_rate |
| Longitud |
| reemplazo_cost |
| Calificación |
| special_features |
| Last_Update |
+----------------------+

Utilizamos el operador In para encontrar los títulos que tienen una duración de alquiler de 3, como se muestra en la consulta a continuación:

Seleccione Film_id, Título, Rental_Duration, Calificación de Film Where Rental_duration en (3) Límite 5;

Una vez que se ejecute la consulta anterior, obtendrá todas las películas (limitadas a 5) donde el alquiler_duration es igual a 3. Aquí está la salida de muestra, como se muestra a continuación:

mySQL> seleccione Film_id, Title, Rental_duration, Calificación de Film Where Rental_duration en (3) Límite 5;
+---------+-----------------+-----------------+--------+
| Film_id | título | Rental_duration | Calificación |
+---------+-----------------+-----------------+--------+
| 2 | Ace Goldfinger | 3 | PG-13 |
| 6 | Agente Truman | 3 | PG |
| 9 | Alabama Devil | 3 | PG-13 |
| 17 | Solo viaje | 3 | R |
| 21 | American Circus | 3 | R |
+---------+-----------------+-----------------+--------+

Como puede ver en el ejemplo anterior, podemos usar el operador in para personalizar nuestro resultado.

Conclusión

Este tutorial le ha mostrado cómo usar e implementar el operador MySQL en el operador para obtener resultados personalizados.