So extrahieren Sie Zahlen aus MySQL-Strings
Wenn Sie in MySQL mit alphanumerischen Zeichenfolgen arbeiten, müssen Sie manchmal die darin enthaltenen Zahlen extrahieren. Dies kann auf verschiedene Weise erreicht werden.
Explizite Konvertierung verwenden
Wenn die Zeichenfolge mit einem numerischen Zeichen beginnt, können Sie sie mithilfe der Funktion CAST()
oder durch Hinzufügen von 0 am Anfang in eine Ganzzahl umwandeln. Zum Beispiel:
SELECT CAST('1234abc' AS UNSIGNED); -- 1234 SELECT '1234abc'+0; -- 1234
Zahlen mit einer benutzerdefinierten Funktion extrahieren
Für komplexere Fälle, in denen die Zeichenfolge möglicherweise nicht numerische Zeichen enthält, können Sie eine benutzerdefinierte Funktion erstellen, um nur die Zahlen zu extrahieren. Eine solche Funktion ist:
CREATE FUNCTION `ExtractNumber`(in_string VARCHAR(50)) RETURNS INT 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
Benutzerdefinierte Funktion anwenden
Nachdem Sie eine Funktion definiert haben, können Sie sie in einer Abfrage verwenden, um Zahlen aus einer Zeichenfolge zu extrahieren. Zum Beispiel:
SELECT ExtractNumber("abc1234def") AS number; -- 1234
Das obige ist der detaillierte Inhalt vonWie kann ich Zahlen aus alphanumerischen Zeichenfolgen in MySQL extrahieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!