Maison > base de données > tutoriel mysql > le corps du texte

Pouvez-vous combiner SQL LIKE et IN pour une correspondance avancée de chaînes ?

Barbara Streisand
Libérer: 2024-11-17 04:03:03
original
443 Les gens l'ont consulté

Can you Combine SQL LIKE and IN for Advanced String Matching?

Combinaison de SQL LIKE et IN pour une correspondance avancée de chaînes

Souvent, les requêtes de base de données nécessitent de faire correspondre une valeur de colonne à plusieurs chaînes spécifiques. Cette tâche peut être accomplie à l'aide des opérateurs LIKE ou IN. Cependant, il peut y avoir des scénarios dans lesquels il est avantageux de combiner les deux opérateurs.

Considérez la requête suivante :

SELECT * FROM tablename WHERE column IN ('M510%', 'M615%', 'M515%', 'M612%');
Copier après la connexion

Cette requête vise à faire correspondre la colonne avec des sous-chaînes commençant par des préfixes spécifiques ("M510 ', 'M515'). Malheureusement, SQL ne permet pas l'imbrication directe des opérateurs LIKE et IN.

Solution alternative : Substring et IN

Comme alternative, vous pouvez utiliser la fonction SUBSTRING avec l'opérateur IN. Cette approche consiste à extraire une sous-chaîne de la colonne, qui est ensuite comparée aux préfixes souhaités à l'aide de l'opérateur IN.

SELECT * FROM tablename WHERE SUBSTRING(column, 1, 4) IN ('M510', 'M615', 'M515', 'M612');
Copier après la connexion

Dans cette requête, la fonction SUBSTRING extrait les quatre premiers caractères de la colonne, correspondant efficacement les préfixes souhaités. L'opérateur IN vérifie efficacement les correspondances avec ces sous-chaînes extraites.

Cette méthode offre une solution concise et efficace, vous permettant d'effectuer des opérations complexes de correspondance de chaînes dans une seule requête sans avoir besoin de boucles ou de jointures supplémentaires.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal