MySQL删除特殊字符的过程,除了字母数字字符和空格M.

时间:2016-02-09 04:58:08

标签: mysql stored-procedures

我有一个包含列abc的表,其中包含一些特殊字符,如",。`。我想删除它们并使用存储过程清理列。我在网上查了一下( How to remove all non-alpha numeric characters from a string?)并发现以下功能有效。但是,我需要一个可以执行的过程来清理列。 我是编程和MySQL的新手,并使用phpMyAdmin创建例程。任何关于转换下面和验证的帮助都会有很大的帮助。



DROP FUNCTION IF EXISTS alphanum; 
DELIMITER | 
CREATE FUNCTION alphanum( str CHAR(32) ) RETURNS CHAR(16) 
BEGIN 
  DECLARE i, len SMALLINT DEFAULT 1; 
  DECLARE ret CHAR(32) DEFAULT ''; 
  DECLARE c CHAR(1); 
  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; 
  RETURN ret; 
END | 
DELIMITER ; 




另外,我该如何运行它?我应该只创建一个例程,然后只使用call语句来清理colum吗?

1 个答案:

答案 0 :(得分:0)

只需使用您所涉及的函数编写Update来清理列值。

假设您的表名为table1,列abc

UPDATE table1
SET abc=alphanum(abc);

这将使用新值更新表格列abc

将此查询放入您的程序中。

相关问题