Buscar filas para encontrar subcadenas en MySQL

Mehvish Ashiq 30 enero 2023
  1. Método 1: encontrar una cadena/subcadena usando el comodín %
  2. Método 2: encontrar una cadena/subcadena usando la función LOCATE()
  3. Conclusiones
Buscar filas para encontrar subcadenas en MySQL

En algunas situaciones, debe buscar una cadena o subcadena en una tabla.

Por ejemplo, quieres saber cuántos usuarios de Gmail hay en la tabla employee. Otro ejemplo es buscar todos los firstname que empiecen por Je en la tabla employee.

Aquí, la búsqueda de una cadena o subcadena aparece en la imagen, y hay diferentes formas de buscar. POSITION() para SQL estándar, LOCATE() y comodines % para MySQL, y INSTR() para Oracle.

Aprenderemos los métodos compatibles con MySQL y observaremos cuál es la mejor y más fácil forma de buscar filas para encontrar subcadenas en MySQL. Puede mirarlos todos y luego decidir qué método es mejor en su caso.

Método 1: encontrar una cadena/subcadena usando el comodín %

% El comodín se usa para sustituir uno o varios caracteres en una cadena. Este comodín se usa con el operador LIKE y el operador LIKE se usa en la cláusula WHERE.

Para practicar, creamos una nueva tabla llamada employee. Puede crear el mismo y completarlo con datos utilizando el código de muestra que se proporciona a continuación.

De esta manera, estaremos en la misma página mientras aprendemos.

#Create employee table
CREATE TABLE employee(
id int not null primary key,
firstname varchar(60) not null,
lastname varchar(60) not null,
gender varchar(30) not null,
city varchar(40) not null,
email varchar(60) not null
);

#Insert data into employee table.
INSERT INTO employee VALUES 
    (1,'James','Robert','Male','London','jrober@gmail.com'),
    (2,'Mary','Patricia','Female','Berlin','patricia@gmail.com'),
    (3,'John','Michael','Male','Paris','johnmichael@yahoo.com'),
    (4,'Jennifer','Linda','Female','Lisbon','jennifer@hotmail.com'),
    (5,'William','David','Male','Rome','wdwilliam@gmail.com'),
    (6,'Elizabeth','Barbara','Female','Dublin','elibarbara011@yahoo.com'),
    (7,'Richard','Joseph','Male','Oslo', 'richard@gmail.com'),
    (8,'Susan','Jessica','Female','Hamburg','susan01@yahoo.com'),
    (9,'Thomas','Charles','Male','Texas', 'thomas.charles@hotmail.com'),
    (10,'Karen','Nancy','Female','Washington','karenofficial@gmail.com');

SELECT * FROM employee;

Producción:

buscar filas para encontrar subcadenas en mysql - tabla de empleados

Entendamos considerando diferentes escenarios para buscar filas para encontrar una cadena o subcadena usando el comodín %.

Escenario 1: Encuentra todos los usuarios de Gmail. Es decir, tenemos que encontrar una subcadena en el email.

SELECT firstname, lastname from employee where email LIKE '%@gmail.com';

La consulta SQL anterior seleccionará firstname y lastname de la tabla employee cuya cadena email contenga gmail.com.

Producción:

buscar filas para encontrar subcadenas en mysql - encontrar usuarios de gmail usando comodines

Escenario 2: Seleccionar aquellos apellidos que terminen con la letra a. Aquí encontraremos una cadena, el apellido.

SELECT lastname FROM employee WHERE lastname LIKE '%a';

Producción:

busque filas para encontrar subcadenas en mysql - busque apellidos que terminen con un comodín usando

Escenario 3: Busquemos los nombres de las city que comienzan con L, terminan con n y tienen cuatro caracteres entre ellos. Un guión bajo (_) es para un carácter.

SELECT city FROM employee WHERE city LIKE 'L____n';

Producción:

buscar filas para encontrar subcadenas en mysql - buscar ciudad considerar el carácter de inicio y fin con n usando comodín

Puede aprender más caracteres comodín aquí.

Método 2: encontrar una cadena/subcadena usando la función LOCATE()

La función LOCATE devuelve la primera aparición de la subcadena en una cadena. Devuelve 0 si no puede encontrar la subcadena dentro de la cadena original.

Esta función realiza una búsqueda que no distingue entre mayúsculas y minúsculas, lo que significa que HELLO, y hello son lo mismo para la función LOCATE. Se utiliza con la siguiente sintaxis.

LOCATE(substring, string, start)

En la sintaxis anterior, los dos primeros parámetros denominados subcadena y cadena son obligatorios, pero el tercer parámetro denominado start es opcional.

Es posible que tenga una pregunta sobre cómo se verá la salida. Entendamos a través de la siguiente imagen.

buscar filas para encontrar subcadenas en mysql - comprender la función de locate

SELECT LOCATE("hotmail", email) FROM employee;

Producción:

buscar filas para encontrar subcadenas en mysql - localizar hotmail

Conclusiones

Llegamos a la conclusión de que diferentes plataformas de bases de datos admiten diferentes métodos. LOCATE(), y el comodín es compatible con MySQL.

Aprendimos formas compatibles con MySQL de buscar una cadena o subcadena con la ayuda de ejemplos. Y observe la salida para entender.

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

Artículo relacionado - MySQL String