Maison >base de données >tutoriel mysql >Comment puis-je extraire des nombres à partir de chaînes dans MySQL ?

Comment puis-je extraire des nombres à partir de chaînes dans MySQL ?

DDD
DDDoriginal
2025-01-09 16:41:42335parcourir

How Can I Extract Numbers from Strings in MySQL?

Méthode d'extraction du numéro de chaîne MySQL

MySQL fournit plusieurs méthodes pour extraire des nombres à partir de chaînes. Si la chaîne commence par un nombre, vous pouvez utiliser la fonction CAST() ou une conversion de type implicite (par exemple, '1234abc' 0) pour extraire la partie numérique.

Fonction personnalisée pour traiter n'importe quelle chaîne

Pour les chaînes contenant des caractères non numériques ou des chiffres qui ne figurent pas au début de la chaîne, vous pouvez créer une fonction personnalisée, telle que ExtractNumber :

<code class="language-sql">CREATE FUNCTION `ExtractNumber`(in_string VARCHAR(50))
RETURNS INT
NO SQL
BEGIN
    DECLARE inti INT DEFAULT 0;
    DECLARE sChar CHAR(1);
    DECLARE finNumber VARCHAR(50) DEFAULT "";
    DECLARE strLength INT;

    SET strLength = LENGTH(in_string);

    WHILE(inti < strLength) DO
        SET sChar = SUBSTRING(in_string, inti + 1, 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);
END</code>

Utilisation de la fonction personnalisée ExtractNumber

Après avoir défini la fonction ExtractNumber, elle peut être utilisée dans les requêtes :

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

Les nombres peuvent être extraits des chaînes MySQL dans différents formats en utilisant cette fonction ou la méthode CAST().

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