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

Uso de Me gusta en MySQL para operaciones de búsqueda mediante patrón

Este tutorial es parte de la serie Aprenda consultas SQL básicas usando MySQL. En este tutorial, analizaremos las consultas SQL para realizar operaciones de búsqueda en los datos de la tabla en MySQL usando la cláusula WHERE con la condición LIKE.

Condición similar

El ME GUSTA y NO ME GUSTA las condiciones se pueden usar para realizar operaciones de búsqueda en los datos de la tabla usando el patrón especificado.

# LIKE - Syntax
SELECT * FROM `table_name` WHERE `column_name` LIKE '<pattern>';

# NOT LIKE - Syntax
SELECT * FROM `table_name` WHERE `column_name` NOT LIKE '<pattern>';

Explicación de consulta

El ME GUSTA La condición se puede usar para buscar en una columna específica usando el patrón especificado. Podemos usar la condición LIKE con WHERE para realizar las operaciones de búsqueda.

Tenemos que especificar al menos una condición usando la cláusula WHERE para que las filas califiquen para la eliminación; de lo contrario, se borrará toda la tabla. Todas las filas de la tabla se eliminan sin la condición.

Podemos usar los comodines mencionados a continuación con la condición LIKE para refinar los resultados de búsqueda.

Porcentaje (%) - Representa cero, uno o varios caracteres

Guión bajo (_) - Representa un solo carácter

También podemos usar la palabra clave ESCAPE para incluir los comodines en los resultados de búsqueda.

Ejemplos

Esta sección proporciona ejemplos para realizar operaciones de búsqueda utilizando la condición LIKE con la cláusula WHERE. Utilice la consulta que se menciona a continuación para crear la tabla de usuarios que tenga la identificación, el nombre, el apellido y las columnas activas para almacenar los datos del usuario.

# Create the User Table
CREATE TABLE `enterprise`.`user` (
`user_id` BIGINT NOT NULL,
`first_name` VARCHAR(45) ,
`last_name` VARCHAR(45),
`active` TINYINT(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`user_id`));

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`, `active` ) VALUES
( 1, 'John', 'Smith', 1 ),
( 2, 'Rick', 'Jones', 1 ),
( 3, 'Catherine', 'Ponting', 0 ),
( 4, 'Harsh', 'Upadhyay', 1 ),
( 5, 'Tajwinder', 'Singh', 0 );

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

Ahora usaremos la condición LIKE con la cláusula WHERE para buscar en las columnas de nombre o apellido de la tabla de usuarios. Se puede hacer usando WHERE LIKE en MySQL como se muestra a continuación.

# LIKE - Exact search - Single Condition
SELECT * FROM `user` WHERE `first_name` LIKE 'John';
SELECT * FROM `user` WHERE `first_name` LIKE 'john';

# Result
1 John Smith 1


# LIKE - Exact search - Multiple Conditions
SELECT * FROM `user` WHERE `first_name` LIKE 'Rick' AND `last_name` LIKE 'Jones';

# Result
2 Rick Jones 1


# NOT LIKE - Exact search - Single Condition
SELECT * FROM `user` WHERE `first_name` NOT LIKE 'John';

# Result
2 Rick Jones 1
3 Catherine Ponting 0
4 Harsh Upadhyay 1
5 Tajwinder Singh 0
 

Las consultas mencionadas anteriormente realizan una búsqueda exacta usando WHERE LIKE y el patrón dado. La condición LIKE ignora el caso mientras coincide con los valores de la columna. Proporciona el mismo resultado con mayúsculas o minúsculas.

Ahora usaremos el comodín para realizar la búsqueda como se muestra a continuación.

# LIKE - % Wildcard search
SELECT * FROM `user` WHERE `first_name` LIKE '%ine';

# Result
3 Catherine Ponting 0


# LIKE - % Wildcard search
SELECT * FROM `user` WHERE `first_name` LIKE 'Cat%in%';

# Result
3 Catherine Ponting 0


# LIKE - % Wildcard search
SELECT * FROM `user` WHERE `first_name` LIKE '%in%';

# Result
3 Catherine Ponting 0
5 Tajwinder Singh 0


# LIKE - _ Wildcard search
SELECT * FROM `user` WHERE `first_name` LIKE '_ohn';

# Result
1 John Smith 1


# LIKE - % & _ Wildcard search
SELECT * FROM `user` WHERE `first_name` LIKE '_oh%';

# Result
1 John Smith 1

La consulta mencionada a continuación explica el uso de la palabra clave ESCAPE con la condición LIKE.

# Insert Rows - All Columns
INSERT INTO `user` ( `user_id`, `first_name`, `last_name`, `active` ) VALUES
( 6, 'Jo%hn', 'Waugh', 1 ),
( 7, 'Rick', 'Jones', 1 );

# LIKE - ESCAPE - Exact search
SELECT * FROM `user` WHERE `first_name` LIKE '%#%hn' ESCAPE '#';

# Result
6 Jo%hn Waugh 1

Así es como podemos usar la condición LIKE con la cláusula WHERE con y sin comodín para realizar operaciones de búsqueda usando el patrón especificado.