sql >> Base de Datos >  >> RDS >> Mysql

Cláusula Where para filtrar filas en MySQL

Este tutorial es parte de la serie Aprenda consultas SQL básicas usando MySQL. En el tutorial anterior, hemos discutido las consultas SQL para obtener filas o leer datos de una tabla en MySQL. El comando SELECCIONAR devuelve todas las filas de una tabla a menos que especifiquemos el límite como se muestra en los ejemplos del tutorial anterior. En varias situaciones, necesitamos filtrar las filas resultantes para que las filas limitadas cumplan con ciertas condiciones. Podemos filtrar las filas usando la cláusula WHERE especificando la condición de filtro. También podemos especificar múltiples condiciones usando las palabras clave AND, OR.

Cláusula Where

El DÓNDE La cláusula se puede usar para leer filas filtradas de una tabla según las condiciones dadas. En caso de que haya iniciado sesión de forma remota en la base de datos, también necesitará el privilegio SELECT para la tabla a fin de leer las filas de una tabla.

# SELECT - Syntax - WHERE
SELECT column_1,column_2,... FROM table_name WHERE <single or multiple conditions>;

Explicación de consulta

El comando MySQL SELECCIONAR se puede usar para leer filas o datos del nombre de la tabla dado donde la expresión de selección y el nombre de la tabla son obligatorios.

Podemos filtrar el conjunto de consultas resultante devuelto por la consulta de selección utilizando la cláusula WHERE. Podemos especificar condiciones únicas o múltiples para filtrar los resultados. Las palabras clave Y y O se puede utilizar para aplicar múltiples condiciones. También podemos usar las palabras clave IN y NO EN para restringir los valores de la columna a un conjunto de valores.

Operadores

Podemos usar los operadores enumerados a continuación para realizar comparaciones mientras aplicamos las condiciones de filtro. La comparación se realizará utilizando el valor dado y los valores almacenados en la columna de la tabla.

= Se puede utilizar para comprobar si los valores de los dos operandos son iguales o no.


!= Comprueba si los valores de los dos operandos no son iguales.


> Comprueba si el valor del operando izquierdo es mayor que el valor del operando derecho.


< Comprueba si el valor del operando izquierdo es menor que el valor del operando derecho.


>= Comprueba si el valor del operando izquierdo es mayor o igual que el valor del operando derecho.


<= Comprueba si el valor del operando izquierdo es menor o igual que el valor del operando derecho.

Ejemplos

Esta sección proporciona ejemplos para leer datos filtrados de la tabla usando SELECCIONAR comando con DONDE cláusula. Utilice la consulta que se menciona a continuación para crear la tabla de usuarios que tenga las columnas de identificación, nombre y apellido para almacenar los datos del usuario.

# Create the User Table
CREATE TABLE `user` (
`user_id` bigint(20) NOT NULL,
`first_name` varchar(45),
`last_name` varchar(45)
);

La consulta mencionada a continuación se puede utilizar para insertar datos en la tabla de usuario.

# Insert Rows - All Columns
INSERT INTO `user` ( `user_id`, `first_name`, `last_name`) VALUES
( 1, 'John', 'Smith' ),
( 2, 'Rick', 'Jones' ),
( 3, 'Catherine', 'Ponting' ),
( 4, 'Harsh', 'Upadhyay' ),
( 5, 'Tajwinder', 'Singh' ),
( 6, 'Leo', NULL ),
( 7, 'Leo', 'Murphy' ),
( 8, 'Ram', 'Choudhary' ),
( 9, 'Nicole', NULL ),
( 10, 'Ram', 'Choudhary' );

La consulta mencionada anteriormente insertará 10 filas en la tabla con la identificación, el nombre y el apellido para representar a 10 usuarios diferentes.

Ahora leeremos los datos filtrados insertados por nosotros en la tabla de usuarios. Se puede hacer usando el comando SELECCIONAR como se muestra a continuación.

# Filter - WHERE - Read all rows having first name set to Leo
SELECT * FROM `user` WHERE `first_name` = 'Leo';

# Result
6 Leo
7 Leo Murphy


# Filter - WHERE - AND - Read all rows having first name set to Leo and last name set to Murphy
SELECT * FROM `user` WHERE `first_name` = 'Leo' AND `last_name` = 'Murphy';

# Result
7 Leo Murphy


# Filter - WHERE - IS NOT - Read all rows having last name without NULL values
SELECT * FROM `user` WHERE `last_name` IS NOT NULL;

# Result
1 John Smith
2 Rick Jones
3 Catherine Ponting
4 Harsh Upadhyay
5 Tajwinder Singh
7 Leo Murphy
8 Ram Choudhary
10 Ram Choudhary


# Filter - WHERE - OR, IN - Read all rows having first name is either John or Harsh
SELECT * FROM `user` WHERE `first_name` = 'John' OR `first_name` = 'Harsh';
SELECT * FROM `user` WHERE `first_name` IN ( 'John', 'Harsh' );

# Result
1 John Smith
4 Harsh Upadhyay

Las consultas mencionadas anteriormente realizan varias operaciones de filtro en string valores utilizando condiciones simples o múltiples. Asegúrese de usar comillas simples al aplicar los filtros para las columnas que tienen el tipo de datos de cadena.

# Filter - WHERE - Read all rows having id lesser than 5
SELECT * FROM `user` WHERE `user_id` < 5;

# Result
1 John Smith
2 Rick Jones
3 Catherine Ponting
4 Harsh Upadhyay


# Filter - WHERE - LIMIT - Read all rows having id lesser than 5
SELECT * FROM `user` WHERE `user_id` < 5 LIMIT 2;

# Result
1 John Smith
2 Rick Jones


# Filter - WHERE - AND - Read all rows having id greater than 3 and lesser than 6
SELECT * FROM `user` WHERE `user_id` > 3 AND `user_id` < 6;

# Result
4 Harsh Upadhyay
5 Tajwinder Singh

Las consultas mencionadas anteriormente aplican las condiciones para tipos de datos numéricos. También podemos mezclar los diferentes tipos de valores como se muestra a continuación.

# Filter - WHERE - AND - Read all rows having first name set to Harsh, id greater than 2 and lesser than 5
SELECT * FROM `user` WHERE `first_name` = 'Harsh' AND `user_id` > 3 AND `user_id` < 6;

# Result
4 Harsh Upadhyay

Así es como podemos leer los datos filtrados almacenados en las tablas de MySQL utilizando la cláusula WHERE.