Maison >base de données >tutoriel mysql >Comment extraire des chiffres d'une chaîne dans MySQL ?

Comment extraire des chiffres d'une chaîne dans MySQL ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-09 16:37:42655parcourir

How to Extract Digits from a String in MySQL?

Utilisez la fonction CAST et la fonction personnalisée pour extraire des nombres à partir de chaînes dans MySQL

La fonction CAST de MySQL peut extraire des nombres d'une chaîne, mais la condition préalable est que la chaîne commence par un nombre. Pour extraire des nombres de n'importe quelle chaîne, vous pouvez utiliser une fonction personnalisée, telle que le code suivant :

<code class="language-sql">DELIMITER $$

CREATE FUNCTION `ExtractNumber`(in_string VARCHAR(50)) 
RETURNS INT
NO SQL
BEGIN
    DECLARE ctrNumber VARCHAR(50);
    DECLARE finNumber VARCHAR(50) DEFAULT '';
    DECLARE sChar VARCHAR(1);
    DECLARE inti INTEGER DEFAULT 1;

    IF LENGTH(in_string) > 0 THEN
        WHILE(inti <= LENGTH(in_string)) DO
            SET sChar = SUBSTRING(in_string, inti, 1);
            IF sChar BETWEEN '0' AND '9' THEN
                SET finNumber = CONCAT(finNumber, sChar);
            END IF;
            SET inti = inti + 1;
        END WHILE;
        RETURN CAST(finNumber AS UNSIGNED);
    ELSE
        RETURN 0;
    END IF;    
END$$

DELIMITER ;</code>

En utilisant cette fonction, les nombres peuvent être extraits des chaînes dans les requêtes MySQL :

<code class="language-sql">SELECT ExtractNumber("abc1234def") AS number;</code>

Cette requête renverra 1234 car la fonction personnalisée parcourt la chaîne, identifie les caractères numériques et les concatène en un seul nombre.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn