Confinement efficace des chaînes MySQL : au-delà substr()
MySQL nécessite souvent de vérifier si une chaîne de colonne ($haystack
) contient une sous-chaîne spécifique ($needle
). Bien que la fonction substr()
puisse être envisagée, elle vérifie uniquement les correspondances exactes au début de la chaîne.
La solution optimale : LIKE
et Wildcards
La méthode supérieure implique l'opérateur LIKE
de MySQL pour la correspondance de modèles. Cette requête vérifie efficacement le confinement des sous-chaînes :
<code class="language-sql">SELECT * FROM `table` WHERE `column` LIKE '%{$needle}%'</code>
Les symboles %
sont des caractères génériques, correspondant à zéro ou plusieurs caractères. Par conséquent, la requête identifie toute ligne où $haystack
contient $needle
à n'importe quelle position.
Considérations sur les performances pour l'évolutivité
L'utilisation de LIKE
avec des caractères génériques peut affecter les performances sur de grands ensembles de données. Pour les bases de données volumineuses, envisagez de mettre en œuvre une indexation en texte intégral pour améliorer considérablement la vitesse des requêtes pour de telles recherches 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!