Rechercher des lignes pour trouver des sous-chaînes dans MySQL

Mehvish Ashiq 15 février 2024
  1. Méthode 1 : Rechercher une chaîne/sous-chaîne à l’aide du caractère générique %
  2. Méthode 2 : Rechercher une chaîne/sous-chaîne à l’aide de la fonction LOCATE()
  3. Conclusion
Rechercher des lignes pour trouver des sous-chaînes dans MySQL

Dans certaines situations, vous devez rechercher une chaîne ou une sous-chaîne dans une table.

Par exemple, vous voulez savoir combien il y a d’utilisateurs Gmail dans la table employee. Un autre exemple est de trouver tous les firstname commençant par Je dans la table employee.

Ici, la recherche d’une chaîne ou d’une sous-chaîne apparaît dans l’image, et il existe différentes manières de rechercher. POSITION() pour SQL standard, LOCATE() et % joker pour MySQL, et INSTR() pour Oracle.

Nous apprendrons les méthodes prises en charge par MySQL et observerons laquelle est la meilleure et la plus simple pour rechercher des lignes afin de trouver des sous-chaînes dans MySQL. Vous pouvez les examiner tous et ensuite décider quelle méthode est la meilleure dans votre cas.

Méthode 1 : Rechercher une chaîne/sous-chaîne à l’aide du caractère générique %

% Wildcard est utilisé pour remplacer un ou plusieurs caractères dans une chaîne. Ce caractère générique est utilisé avec l’opérateur LIKE et l’opérateur LIKE est utilisé dans la clause WHERE.

Pour nous entraîner, nous avons créé une nouvelle table nommée employee. Vous pouvez créer la même chose et la remplir de données en utilisant l’exemple de code donné ci-dessous.

De cette façon, nous serons sur la même page tout en apprenant.

#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;

Production :

rechercher des lignes pour trouver des sous-chaînes dans mysql - table des employés

Comprenons à considérer différents scénarios de recherche de lignes pour trouver une chaîne ou une sous-chaîne en utilisant le caractère générique %.

Scénario 1 : Trouver tous les utilisateurs de Gmail. Autrement dit, nous devons trouver une sous-chaîne dans le email.

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

La requête SQL ci-dessus sélectionnera firstname et lastname dans la table employee dont la chaîne email contient gmail.com.

Production :

rechercher des lignes pour trouver des sous-chaînes dans mysql - trouver des utilisateurs de gmail en utilisant un caractère générique

Scénario 2 : Sélectionnez les noms de famille qui se terminent par la lettre a. Ici, nous trouverons une chaîne, le lastname.

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

Production :

rechercher des lignes pour trouver des sous-chaînes dans mysql - trouver les noms de famille se terminant par un caractère générique à l’aide

Scénario 3 : Trouvons les noms de city commençant par L, se terminant par n, et ayant quatre caractères entre eux. Un trait de soulignement (_) correspond à un caractère.

SELECT city FROM employee WHERE city LIKE 'L____n';

Production :

rechercher des lignes pour trouver des sous-chaînes dans mysql - trouver la ville considérer le caractère de fin de début avec n en utilisant un caractère générique

Vous pouvez en savoir plus sur les caractères génériques ici.

Méthode 2 : Rechercher une chaîne/sous-chaîne à l’aide de la fonction LOCATE()

La fonction LOCATE renvoie la première occurrence de la sous-chaîne dans une chaîne. Il renvoie 0 s’il est impossible de trouver la sous-chaîne dans la chaîne d’origine.

Cette fonction effectue une recherche insensible à la casse, ce qui signifie que HELLO et hello sont identiques pour la fonction LOCATE. Il est utilisé avec la syntaxe suivante.

LOCATE(substring, string, start)

Dans la syntaxe donnée ci-dessus, les deux premiers paramètres nommés substring et string sont obligatoires, mais le troisième paramètre nommé start est facultatif.

Vous avez peut-être une question sur l’apparence de la sortie ? Comprenons via l’image suivante.

rechercher des lignes pour trouver des sous-chaînes dans mysql - comprendre la fonction de localisation

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

Production :

rechercher des lignes pour trouver des sous-chaînes dans mysql - localiser hotmail

Conclusion

Nous avons conclu que différentes plates-formes de bases de données prennent en charge différentes méthodes. LOCATE() et le caractère générique sont compatibles avec MySQL.

Nous avons appris les méthodes prises en charge par MySQL pour rechercher une chaîne ou une sous-chaîne à l’aide d’exemples. Et observez la sortie pour comprendre.

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

Article connexe - MySQL String