从MySQL中的字符串中删除数字

Naq*_*lik 1 mysql

我有一个像“FALL01”的字符串,我必须从这样的字符串中删除号码,以便输出应该看起来像Fallspring等等。请让我知道如何使用sql查询删除数字。以下是我的示例表。谢谢

季节
------
秋季01
秋季05
春季01
夏季06

Joh*_*Woo 5

我建议您User Define Function为此手动创建一个。这是一个很棒的教程,您可以使用

代码段:

DELIMITER $$ 

DROP FUNCTION IF EXISTS `uExtractNumberFromString`$$
CREATE FUNCTION `uExtractNumberFromString`(in_string varchar(50)) 
RETURNS INT
NO SQL

BEGIN

    DECLARE ctrNumber varchar(50);
    DECLARE finNumber varchar(50) default ' ';
    DECLARE sChar varchar(2);
    DECLARE inti INTEGER default 1;

    IF length(in_string) > 0 THEN

        WHILE(inti <= length(in_string)) DO
            SET sChar= SUBSTRING(in_string,inti,1);
            SET ctrNumber= FIND_IN_SET(sChar,'0,1,2,3,4,5,6,7,8,9');

            IF ctrNumber > 0 THEN
               SET finNumber=CONCAT(finNumber,sChar);
            ELSE
               SET finNumber=CONCAT(finNumber,'');
            END IF;
            SET inti=inti+1;
        END WHILE;
        RETURN CAST(finNumber AS SIGNED INTEGER) ;
    ELSE
        RETURN 0;
    END IF;

END$$

DELIMITER ;
Run Code Online (Sandbox Code Playgroud)

创建函数后,您现在可以轻松地从字符串中删除数字,例如

SELECT uExtractNumberFromString(Season)
FROM   TableName
Run Code Online (Sandbox Code Playgroud)


小智 5

REGEXP_REPLACE()

例子:

UPDATE example_table
SET Season = REGEXP_REPLACE(Season, '[0-9]+', '');
Run Code Online (Sandbox Code Playgroud)

这会将Season列中的任何数字替换为空字符串。