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

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

非字母数字字符如下−

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

MySQL中没有内置函数可以从字符串中删除非字母数字字符。因此,我们创建一个函数,用于删除所有非字母数字字符。该函数的声明和定义如下。

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)

名为“RemoveNonAlphaNumeric”的函数从字符串中删除所有非字母数字字符。为了检查,我们现在将调用自定义函数。

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

下面是使用函数“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)

在此字符串(MyEmailidistest123)中,现在没有@和!符号,这意味着该函数运行正确。

阅读更多:MySQL 教程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程