Heim > Datenbank > MySQL-Tutorial > Wie kann ich nicht-alphanumerische Zeichen effizient aus Zeichenfolgen in MySQL entfernen?

Wie kann ich nicht-alphanumerische Zeichen effizient aus Zeichenfolgen in MySQL entfernen?

Susan Sarandon
Freigeben: 2024-11-30 16:30:12
Original
479 Leute haben es durchsucht

How Can I Efficiently Remove Non-Alphanumeric Characters from Strings in MySQL?

Nicht-alphanumerische Zeichen aus Zeichenfolgen in MySQL entfernen

Problem:

Beim Vergleich von Zeichenfolgen In MySQL kann die Effizienz verbessert werden, indem alle nicht alphanumerischen Zeichen entfernt werden. Derzeit werden mehrere REPLACE-Funktionen verwendet, es wird jedoch nach einer effizienteren und eleganteren Lösung gesucht.

Lösung:

Für MySQL 8.0 oder höher:

MySQL unterstützt jetzt die Regex-Ersetzung, wodurch es möglich ist, nicht-alphanumerische Zeichen mit einem einzigen zu entfernen Aussage:

UPDATE {table} SET {column} = REGEXP_REPLACE({column}, '[^0-9a-zÀ-ÿ ]', '')
Nach dem Login kopieren

Für MySQL 5.7 oder niedriger:

Regex-Unterstützung ist nicht verfügbar. Eine benutzerdefinierte Funktion, „alphanum“, kann erstellt werden, um die Zeichenentfernung durchzuführen:

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 dem Login kopieren

Diese Funktion kann dann verwendet werden, um nicht alphanumerische Zeichen aus Zeichenfolgen zu entfernen:

select 'This works finally!', alphanum('This works finally!');
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich nicht-alphanumerische Zeichen effizient aus Zeichenfolgen in MySQL entfernen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage