Maison  >  Article  >  base de données  >  Pouvez-vous combiner LIKE et IN pour des requêtes SQL plus puissantes ?

Pouvez-vous combiner LIKE et IN pour des requêtes SQL plus puissantes ?

DDD
DDDoriginal
2024-11-18 07:03:02303parcourir

Can You Combine LIKE and IN for More Powerful SQL Queries?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn