Heim >Datenbank >MySQL-Tutorial >Wie entferne ich HTML-Tags effektiv aus Datenbankeinträgen, um genaue Suchergebnisse zu erhalten?
Beim Extrahieren bestimmter Informationen aus einer Datenbanktabelle mit HTML-formatiertem Text ist es aus Gründen der Genauigkeit wichtig, die HTML-Tags zu entfernen Ergebnisse. Während eine einfache LIKE-Abfrage wie „WHERE Column_name LIKE ‚%mytext%‘“ alle Zeilen abrufen kann, die „mytext“ enthalten, kann sie auch Zeilen umfassen, in denen „mytext“ in HTML-Tags vorkommt.
Um dieses Problem zu beheben, Ein effektiverer Ansatz besteht darin, eine benutzerdefinierte MySQL-Funktion zu erstellen, die gezielt HTML-Tags aus einer bestimmten Zeichenfolge entfernt. Hier ist der Code für eine solche Funktion:
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 ;
Durch die Verwendung dieser Funktion wird die Abfrage zu:
SELECT * from table WHERE fnStripTags(column_name) LIKE '%mytext%'
Jetzt gibt die Abfrage nur Zeilen zurück, in denen „mytext“ innerhalb der erscheint Inhalt selbst, mit Ausnahme aller Instanzen innerhalb von HTML-Tags. Dies liefert genauere und relevantere Ergebnisse und stellt sicher, dass nur die gewünschten Daten abgerufen werden.
Das obige ist der detaillierte Inhalt vonWie entferne ich HTML-Tags effektiv aus Datenbankeinträgen, um genaue Suchergebnisse zu erhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!