Zahlen aus String in MySQL extrahieren
Beim Umgang mit alphanumerischen Zeichenfolgen müssen Zahlen für verschiedene Datenverarbeitungsanforderungen getrennt werden. MySQL bietet mehrere Möglichkeiten, dieses Ziel zu erreichen.
Für Zeichenfolgen, die mit einem numerischen Zeichen beginnen, gefolgt von einem nicht numerischen Zeichen, können Sie CAST() oder die implizite Konvertierung verwenden:
<code class="language-sql">SELECT CAST('1234abc' AS UNSIGNED); -- 1234 SELECT '1234abc'+0; -- 1234</code>
Um Zahlen aus einer beliebig strukturierten Zeichenfolge zu extrahieren, können Sie eine benutzerdefinierte Funktion wie ExtractNumber definieren:
<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>
Nachdem Sie die benutzerdefinierte Funktion ExtractNumber definiert haben, können Sie sie in Abfragen verwenden:
<code class="language-sql">SELECT ExtractNumber("abc1234def") AS number; -- 1234</code>
Das obige ist der detaillierte Inhalt vonWie kann ich Ziffern aus Zeichenfolgen in MySQL extrahieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!