Maison  >  Article  >  base de données  >  Comment supprimer tous les caractères non alphanumériques d’une chaîne dans MySQL ?

Comment supprimer tous les caractères non alphanumériques d’une chaîne dans MySQL ?

PHPz
PHPzavant
2023-08-29 15:41:02711parcourir

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

Les caractères non alphanumériques sont les suivants -

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

Il n'existe pas de fonction intégrée dans MySQL pour supprimer les caractères non alphanumériques d'une chaîne. Par conséquent, nous créons une fonction qui supprime tous les caractères non alphanumériques. La déclaration et la définition de la fonction sont les suivantes.

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)

La fonction nommée "RemoveNonAlphaNumeric" supprime tous les caractères non alphanumériques d'une chaîne. Pour vérifier, nous allons maintenant appeler la fonction définie par l'utilisateur.

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

Vous trouverez ci-dessous le résultat montrant la suppression réussie des caractères alphanumériques à l'aide de la fonction "RemoveNonAlphaNumeric".

+--------------------------+---------------------------------------------------+
| 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)

Dans cette chaîne (MyEmailidistest123), il n'y a pas de @ et ! Il y a maintenant des symboles, ce qui signifie que la fonction fonctionne correctement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer