私は問題があります。
私のこの関数は、1 つのことを除いて、私が望むすべてのことを行います。また、文字列からスペースを削除します。これは望ましくありません。
ここからさまざまなヒントやアイデアを試してみましたが、うまくいきません。ドキュメントには、私が正しく使用していると書かれていますが、誤解している可能性があります。誰か助けてくれませんか?
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