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

2023年 8月 29日 22.8k 0

如何从 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 中的字符串中删除所有非字母数字字符?的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

相关文章

pt-kill工具的使用
pt-ioprofile工具包的使用
数据库管理-第216期 Oracle的高可用-01(20240703)
DBMS_REPAIR EXAMPLE SCRIPT WITH PARTITION
数据库事务的四大特性: ACID 
使用BBED修复损坏的SYSTEM文件头

发布评论