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!