Effizientes Entfernen nicht-alphanumerischer Zeichen aus Zeichenfolgen in MySQL
In MySQL kann der Vergleich von Zeichenfolgen eine leistungsintensive Aufgabe sein. Um die Effizienz zu optimieren, ist es oft vorteilhaft, nicht-alphanumerische Zeichen vor dem Vergleich zu entfernen. Lassen Sie uns verschiedene Ansätze untersuchen, um dies zu erreichen, einschließlich der Nutzung der Regex-Funktionalität und der Erstellung einer benutzerdefinierten Funktion.
MySQL 8.0 und höher: Verwendung von Regex
Mit MySQL 8.0 oder späteren Versionen Sie können Regex (reguläre Ausdrücke) verwenden, um nicht alphanumerische Zeichen zu ersetzen. Die folgende SQL-Anweisung veranschaulicht diesen Ansatz:
UPDATE {table} SET {column} = REGEXP_REPLACE({column}, '[^0-9a-zÀ-ÿ ]', '')
In dieser Anweisung stimmt der reguläre Ausdruck [^0-9a-zÀ-ÿ ] mit jedem Zeichen überein, das keine Zahl, kein Buchstabe, kein Leerzeichen oder kein Akzentzeichen ist.
MySQL 5.7 und niedriger: Erstellen einer benutzerdefinierten Funktion
Für frühere MySQL-Versionen (5.7 oder niedriger) ist die Regex-Funktionalität nicht verfügbar. Alternativ können Sie eine benutzerdefinierte Funktion erstellen, die nicht alphanumerische Zeichen entfernt. Hier ist eine Beispielimplementierung:
DROP FUNCTION IF EXISTS alphanum; DELIMITER | CREATE FUNCTION alphanum(str CHAR(255)) RETURNS CHAR(255) DETERMINISTIC BEGIN DECLARE i, len SMALLINT DEFAULT 1; DECLARE ret CHAR(255) DEFAULT ''; DECLARE c CHAR(1); IF str IS NOT NULL THEN SET len = CHAR_LENGTH(str); REPEAT BEGIN SET c = MID(str, i, 1); IF c REGEXP '[[:alnum:]]' THEN SET ret=CONCAT(ret,c); END IF; SET i = i + 1; END; UNTIL i > len END REPEAT; ELSE SET ret=''; END IF; RETURN ret; END | DELIMITER ;
Nach der Erstellung können Sie diese Funktion verwenden, um nicht alphanumerische Zeichen zu entfernen, wie unten gezeigt:
select 'This works finally!', alphanum('This works finally!');
Das obige ist der detaillierte Inhalt vonWie entferne ich nicht-alphanumerische Zeichen effizient aus Zeichenfolgen in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!