Maison >base de données >tutoriel mysql >Comment puis-je rechercher efficacement les enregistrements de la base de données après avoir supprimé les balises HTML dans MySQL ?

Comment puis-je rechercher efficacement les enregistrements de la base de données après avoir supprimé les balises HTML dans MySQL ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-01 00:17:17997parcourir

How Can I Efficiently Search Database Records After Removing HTML Tags in MySQL?

Suppression des balises HTML des enregistrements de base de données

Dans MySQL, la suppression des balises HTML d'une colonne spécifique peut être réalisée à l'aide de techniques spécifiques. Considérez les données suivantes :

SELECT *
FROM table
WHERE colmn_name ` like '%mytext%'

Cette requête renvoie les quatre lignes même si seule la ligne 3 contient « montexte » dans le contenu. Pour obtenir le résultat souhaité, ligne 3 uniquement, une approche plus précise est nécessaire.

Une solution consiste à utiliser une fonction définie par l'utilisateur (UDF) pour supprimer les balises HTML. Voici un exemple :

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 ;

Cette fonction, fnStripTags(), localise et supprime de manière itérative toutes les balises HTML de la chaîne d'entrée donnée. Il peut être utilisé dans une requête comme suit :

SELECT *
FROM table
WHERE fnStripTags(colmn_name) LIKE '%mytext%'

Cette requête révisée renverra uniquement la ligne 3, qui contient "montexte" dans son contenu non HTML.

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!

Déclaration:
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