我有个问题。
我的这个功能可以满足我的所有需求,除了一件事,它还从字符串中删除了空格,这是我不想要的。
我一直在尝试从这里开始的所有不同的技巧和想法,但它不起作用。文档说我使用正确,也许我误解了。有人可以帮帮我吗?
CREATE DEFINER=`user`@`%` FUNCTION `fn_RemoveNumbers`(str varchar(8000)) RETURNS varchar(767) CHARSET latin1
BEGIN
DECLARE i, len SMALLINT DEFAULT 1;
DECLARE ret varchar(767) DEFAULT '';
DECLARE c CHAR(1);
SET len = CHAR_LENGTH( str );
REPEAT
BEGIN
SET c = MID( str, i, 1 );
IF (c REGEXP '[[:alpha:]]') OR (c REGEXP '[[:space:]]') THEN
SET ret=CONCAT(ret,c);
END IF;
SET i = i + 1;
END;
UNTIL i > len END REPEAT;
RETURN ret;
END
在我看来, (c REGEXP '[[:space:]]') 应该将 char 附加到最终字符串,但它没有。
我也试过'','[]'等,但没有成功。
我正在使用 mysql 5.6 版。我使用了这个文档:http ://dev.mysql.com/doc/refman/5.6/en/regexp.html