我有一个包含列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吗?
答案 0 :(得分:0)
只需使用您所涉及的函数编写Update
来清理列值。
假设您的表名为table1
,列abc
UPDATE table1
SET abc=alphanum(abc);
这将使用新值更新表格列abc
。
将此查询放入您的程序中。