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
Libérer: 2025-01-01 00:17:17
original
947 Les gens l'ont consulté

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%'
Copier après la connexion

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 ;
Copier après la connexion

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%'
Copier après la connexion

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 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