Heim >Datenbank >MySQL-Tutorial >Wie kann ich Zahlen aus alphanumerischen Zeichenfolgen in MySQL extrahieren?
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:
<code class="language-sql">SELECT CAST('1234abc' AS UNSIGNED); -- 1234 SELECT '1234abc'+0; -- 1234</code>
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:
<code class="language-sql">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</code>
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:
<code class="language-sql">SELECT ExtractNumber("abc1234def") AS number; -- 1234</code>
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!