HTML-Tags aus Datenbankdatensätzen entfernen
In MySQL kann das Entfernen von HTML-Tags aus einer bestimmten Spalte mithilfe bestimmter Techniken erreicht werden. Betrachten Sie die folgenden Daten:
SELECT * FROM table WHERE colmn_name ` like '%mytext%'
Diese Abfrage gibt alle vier Zeilen zurück, obwohl nur Zeile 3 „mytext“ im Inhalt enthält. Um das gewünschte Ergebnis zu erhalten, ist nur Zeile 3 ein präziserer Ansatz erforderlich.
Eine Lösung besteht darin, eine benutzerdefinierte Funktion (UDF) zu verwenden, um die HTML-Tags zu entfernen. Hier ist ein Beispiel:
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 ;
Diese Funktion, fnStripTags(), sucht und entfernt iterativ alle HTML-Tags aus der angegebenen Eingabezeichenfolge. Es kann wie folgt in einer Abfrage verwendet werden:
SELECT * FROM table WHERE fnStripTags(colmn_name) LIKE '%mytext%'
Diese überarbeitete Abfrage gibt nur Zeile 3 zurück, die „mytext“ in ihrem Nicht-HTML-Inhalt enthält.
Das obige ist der detaillierte Inhalt vonWie kann ich Datenbankeinträge effizient durchsuchen, nachdem ich HTML-Tags in MySQL entfernt habe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!