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 ?
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 ;
En utilisant cette fonction, la requête devient :
SELECT * from table WHERE fnStripTags(column_name) LIKE '%mytext%'
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!