Maison > Article > base de données > Pouvez-vous combiner LIKE et IN pour des requêtes SQL plus puissantes ?
Combinaison LIKE et IN pour les requêtes SQL avancées
En SQL, l'opérateur LIKE est souvent utilisé pour la correspondance de modèles, tandis que l'opérateur IN permet nous pour faire correspondre une valeur à une liste de valeurs spécifiques. Bien que ces opérateurs répondent à des objectifs différents, il est possible de les combiner pour créer des requêtes plus puissantes.
Considérons le scénario suivant : vous disposez d'une table avec une colonne nommée "company_id" et vous souhaitez sélectionner toutes les lignes où le "company_id" commence par des chaînes spécifiques, telles que "M510", "M615", "M515" et "M612".
Une approche pourrait être d'utiliser l'opérateur LIKE comme suit :
SELECT * FROM tablename WHERE company_id LIKE 'M510%'
Cependant, cela ne correspondra qu'aux lignes qui commencent exactement par "M510". Pour faire correspondre plusieurs chaînes, vous devrez créer plusieurs requêtes.
Utiliser une sous-chaîne avec IN
Une solution plus efficace consiste à utiliser une sous-chaîne avec l'opérateur IN. La fonction SUBSTRING() extrait un nombre spécifié de caractères d'une chaîne, à partir d'une position donnée.
Pour notre scénario, nous pouvons utiliser la requête suivante :
SELECT * FROM tablename WHERE SUBSTRING(company_id, 1, 4) IN ('M510', 'M615', 'M515', 'M612')
Cette requête va extrayez les 4 premiers caractères de la colonne "company_id" et vérifiez si elle existe dans la liste de valeurs spécifiée dans la clause IN. En combinant la sous-chaîne avec IN, nous pouvons obtenir la correspondance de modèle souhaitée sans avoir à parcourir un tableau de chaînes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!