sql >> Databáze >  >> RDS >> Mysql

Odstranění čísel z řetězce v mysql

Navrhuji, abyste ručně vytvořili User Define Function pro tohle. Zde je skvělý tutoriál, který můžete použít

Fragment kódu:

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 ;

jakmile byla funkce vytvořena, můžete nyní snadno odstranit čísla z řetězce, příklad

SELECT uExtractNumberFromString(Season)
FROM   TableName


  1. (Android) Najděte cestu /Android v interním úložišti

  2. Začínáme s Oracle LiveSQL

  3. Jak opravit „MySQL ERROR 1819 (HY000):“ v Linuxu

  4. Jak získat celkový počet výsledků, když je v dotazu LIMIT?