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%');
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');
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!