Maison >base de données >tutoriel mysql >Comment extraire des chiffres d'une chaîne dans 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!