Maison > base de données > tutoriel mysql > Comment supprimer efficacement les balises HTML des enregistrements de base de données pour des résultats de recherche précis ?

Comment supprimer efficacement les balises HTML des enregistrements de base de données pour des résultats de recherche précis ?

Patricia Arquette
Libérer: 2024-12-06 09:12:10
original
945 Les gens l'ont consulté

How to Effectively Remove HTML Tags from Database Records for Accurate Search Results?

Comment supprimer efficacement les balises HTML des enregistrements de base de données

Lors de l'extraction d'informations spécifiques d'une table de base de données contenant du texte au format HTML, il est essentiel de supprimer les balises HTML pour obtenir des informations précises. résultats. Bien qu'une simple requête LIKE telle que "WHERE nom_colonne LIKE '%montexte%'" puisse récupérer toutes les lignes contenant "montexte", elle peut également inclure des lignes où "montexte" apparaît dans les balises HTML.

Pour résoudre ce problème, une approche plus efficace consiste à créer une fonction MySQL personnalisée qui supprime spécifiquement les balises HTML d'une chaîne donnée. Voici le code d'une telle fonction :

SET GLOBAL log_bin_trust_function_creators=1;
DROP FUNCTION IF EXISTS fnStripTags;
DELIMITER |
CREATE FUNCTION fnStripTags( Dirty varchar(4000) )
RETURNS varchar(4000)
DETERMINISTIC 
BEGIN
  DECLARE iStart, iEnd, iLength int;
    WHILE Locate( '<', Dirty ) > 0 And Locate( '>', Dirty, Locate( '<', Dirty )) > 0 DO
      BEGIN
        SET iStart = Locate( '<', Dirty ), iEnd = Locate( '>', Dirty, Locate('<', Dirty ));
        SET iLength = ( iEnd - iStart) + 1;
        IF iLength > 0 THEN
          BEGIN
            SET Dirty = Insert( Dirty, iStart, iLength, '');
          END;
        END IF;
      END;
    END WHILE;
    RETURN Dirty;
END;
|
DELIMITER ;
Copier après la connexion

En utilisant cette fonction, la requête devient :

SELECT * from table WHERE fnStripTags(column_name) LIKE '%mytext%'
Copier après la connexion

Maintenant, la requête ne renverra que les lignes où « montexte » apparaît dans le contenu lui-même, à l’exclusion de toute instance dans les balises HTML. Cela fournit des résultats plus précis et pertinents, garantissant que seules les données souhaitées sont récupérées.

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