Optimisez les requêtes MySQL pour faire correspondre efficacement plusieurs modèles
La requête suivante est conçue pour récupérer les lignes de la table fiberbox
où la valeur de la colonne fiberBox
correspond à un modèle spécifique, en utilisant plusieurs conditions OU combinées avec l'opérateur LIKE. Cependant, les utilisateurs ont exprimé leur intérêt pour l'exploration de la syntaxe LIKE IN()
qui n'est pas supportée nativement dans MySQL.
Pour obtenir la fonctionnalité souhaitée, pensez à utiliser des expressions régulières (REGEXP) au lieu de LIKE IN()
. REGEXP vous permet de faire correspondre les valeurs des colonnes avec plusieurs modèles en même temps, offrant une alternative plus efficace dans certains cas.
Voici une requête REGEXP optimisée qui réalise la même tâche :
SELECT * FROM fiberbox WHERE field REGEXP '1740|1938|1940';
Dans cette requête, l'opérateur REGEXP est utilisé pour faire correspondre la valeur de la colonne field
à trois modèles séparés par le symbole barre verticale (|). Cette approche est plus efficace que l'utilisation de plusieurs conditions OR avec LIKE, en particulier lorsqu'il s'agit d'un grand nombre de modèles.
Cependant, il est recommandé de comparer les deux approches pour déterminer la meilleure solution pour votre ensemble de données et votre scénario d'utilisation spécifiques.
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!