Mysql
 sql >> Base de données >  >> RDS >> Mysql

Utilisation de Like In MySQL pour les opérations de recherche à l'aide de Pattern

Ce didacticiel fait partie de la série Apprendre les requêtes SQL de base à l'aide de MySQL. Dans ce didacticiel, nous aborderons les requêtes SQL pour effectuer des opérations de recherche sur les données de la table dans MySQL à l'aide de la clause WHERE avec la condition LIKE.

Condition similaire

Le J'AIME et N'AIME PAS les conditions peuvent être utilisées pour effectuer des opérations de recherche sur les données de la table en utilisant le modèle spécifié.

# LIKE - Syntaxe
SELECT * FROM `nom_table` WHERE `nom_colonne` LIKE '';

# NOT LIKE - Syntaxe
SELECT * FROM `nom_table ` WHERE `column_name` NOT LIKE '';

Explication de la requête

Le J'AIME La condition peut être utilisée pour rechercher dans une colonne spécifique en utilisant le modèle spécifié. Nous pouvons utiliser la condition LIKE avec WHERE pour effectuer les opérations de recherche.

Nous devons spécifier au moins une condition à l'aide de la clause WHERE pour que les lignes puissent être supprimées, sinon la table entière sera effacée. Toutes les lignes du tableau sont supprimées sans la condition.

Nous pouvons utiliser les caractères génériques mentionnés ci-dessous avec la condition LIKE pour affiner les résultats de la recherche.

Pourcentage (%) - Il représente zéro, un ou plusieurs caractères

Trait de soulignement (_) - Il représente un seul caractère

Nous pouvons également utiliser le mot-clé ESCAPE pour inclure les caractères génériques dans les résultats de recherche.

Exemples

Cette section fournit des exemples pour effectuer des opérations de recherche à l'aide de la condition LIKE avec la clause WHERE. Utilisez la requête mentionnée ci-dessous pour créer la table utilisateur avec l'identifiant, le prénom, le nom et les colonnes actives pour stocker les données utilisateur.

# Créer la table des utilisateurs
CREATE TABLE `enterprise`.`user` (
`user_id` BIGINT NOT NULL,
`first_name` VARCHAR(45) ,
` last_name` VARCHAR(45),
`active` TINYINT(1) NOT NULL DEFAULT 0,
CLÉ PRIMAIRE (`user_id`));

La requête ci-dessous peut être utilisée pour insérer des données dans la table des utilisateurs.

# 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, 'Dur' , 'Upadhyay', 1 ),
( 5, 'Tajwinder', 'Singh', 0 );

La requête mentionnée ci-dessus insérera 5 lignes dans le tableau contenant l'identifiant, le prénom, le nom et les colonnes actives pour représenter 5 utilisateurs différents.

Nous allons maintenant utiliser la condition LIKE avec la clause WHERE pour effectuer une recherche dans les colonnes de prénom ou de nom de famille de la table utilisateur. Cela peut être fait en utilisant WHERE LIKE dans MySQL comme indiqué ci-dessous.

# LIKE - Recherche exacte - Condition unique
SELECT * FROM `user` WHERE `first_name` LIKE 'John';
SELECT * FROM `user` WHERE `first_name` LIKE 'john';

# Résultat
1 John Smith 1


# LIKE - Recherche exacte - Conditions multiples
SELECT * FROM `user` WHERE `first_name ` LIKE 'Rick' AND `last_name` LIKE 'Jones';

# Résultat
2 Rick Jones 1


# NOT LIKE - Recherche exacte - Condition unique
SELECT * FROM `user` WHERE `first_name` NOT LIKE 'John' ;

# Résultat
2 Rick Jones 1
3 Catherine Ponting 0
4 Harsh Upadhyay 1
5 Tajwinder Singh 0
 

Les requêtes mentionnées ci-dessus effectuent une recherche exacte en utilisant WHERE LIKE et le modèle donné. La condition LIKE ignore la casse lors de la correspondance avec les valeurs de colonne. Il fournit le même résultat avec des majuscules ou des minuscules.

Nous allons maintenant utiliser le caractère générique pour effectuer la recherche comme indiqué ci-dessous.

# J'AIME - % Recherche générique
SELECT * FROM `user` WHERE `first_name` LIKE '% ine';

# Résultat
3 Catherine Ponting 0


# LIKE - % Recherche générique
SELECT * FROM `user` WHERE `first_name` LIKE 'Cat% en% ';

# Résultat
3 Catherine Ponting 0


# J'AIME - % Recherche générique
SELECT * FROM `user` WHERE `first_name` LIKE '% en% ';

# Résultat
3 Catherine Ponting 0
5 Tajwinder Singh 0


# LIKE - _ Recherche générique
SELECT * FROM `user` WHERE `first_name` LIKE '_ ohn';

# Résultat
1 John Smith 1


# LIKE - % &_ Recherche générique
SELECT * FROM `user` WHERE `first_name` LIKE '_ oh% ';

# Résultat
1 John Smith 1

La requête ci-dessous explique l'utilisation du mot-clé ESCAPE avec la condition 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 - Recherche exacte
SELECT * FROM `user` WHERE `first_name` LIKE '%#%hn' ESCAPE '#';

# Résultat
6 Jo%hn Waugh 1

C'est ainsi que nous pouvons utiliser la condition LIKE avec la clause WHERE avec et sans caractère générique pour effectuer des opérations de recherche en utilisant le modèle spécifié.