Heim  >  Artikel  >  Datenbank  >  Wie entferne ich alle nicht alphanumerischen Zeichen aus einer Zeichenfolge in MySQL?

Wie entferne ich alle nicht alphanumerischen Zeichen aus einer Zeichenfolge in MySQL?

PHPz
PHPznach vorne
2023-08-29 15:41:02659Durchsuche

如何从 MySQL 中的字符串中删除所有非字母数字字符?

Nicht-alphanumerische Zeichen sind wie folgt -

@,!,#,&,(),?, /

In MySQL gibt es keine integrierte Funktion zum Entfernen nicht-alphanumerischer Zeichen aus einer Zeichenfolge. Deshalb erstellen wir eine Funktion, die alle nicht alphanumerischen Zeichen entfernt. Die Funktionsdeklaration und -definition lauten wie folgt.

mysql> delimiter //
mysql> CREATE FUNCTION RemoveNonAlphaNumeric( s CHAR(255) ) RETURNS CHAR(255) DETERMINISTIC
   -> BEGIN
   ->   DECLARE var1, length SMALLINT DEFAULT 1;
   ->   DECLARE result CHAR(255) DEFAULT '';
   ->   DECLARE ch CHAR(1);
   ->   SET length  = CHAR_LENGTH( s );
   ->   REPEAT
   ->     BEGIN
   ->       SET ch = MID( s, var1, 1 );
   ->       IF ch REGEXP '[[:alnum:]]' THEN
   ->         SET result =CONCAT(result ,ch);
   ->       END IF;
   ->       SET var1 = var1 + 1;
   ->     END;
   ->   UNTIL var1 >length  END REPEAT;
   ->   RETURN result ;
   -> END //
Query OK, 0 rows affected (0.10 sec)

Die Funktion mit dem Namen „RemoveNonAlphaNumeric“ entfernt alle nicht alphanumerischen Zeichen aus einer Zeichenfolge. Zur Überprüfung rufen wir nun die benutzerdefinierte Funktion auf.

mysql>delimiter ;
mysql>  select 'My Email id is test@123!',RemoveNonAlphaNumeric('My Email id is test@123!');

Unten sehen Sie die Ausgabe, die die erfolgreiche Entfernung alphanumerischer Zeichen mit der Funktion „RemoveNonAlphaNumeric“ zeigt.

+--------------------------+---------------------------------------------------+
| My Email id is test@123! | removeNonAlphaNumeric('My Email id is test@123!') |
+--------------------------+---------------------------------------------------+
| My Email id is test@123! | MyEmailidistest123                                |
+--------------------------+---------------------------------------------------+
1 row in set (0.15 sec)

In dieser Zeichenfolge (MyEmailidistest123) gibt es kein @ und ! Es gibt jetzt Symbole, was bedeutet, dass die Funktion einwandfrei funktioniert.

Das obige ist der detaillierte Inhalt vonWie entferne ich alle nicht alphanumerischen Zeichen aus einer Zeichenfolge in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen