Heim >Datenbank >MySQL-Tutorial >Wie kann ich Ziffern aus alphanumerischen Zeichenfolgen in MySQL extrahieren?
Zahlen aus alphanumerischen Zeichenfolgen in MySQL extrahieren
Bei der Datenbankprogrammierung ist das Extrahieren spezifischer Daten aus unstrukturierten oder gemischten Zeichenfolgen eine häufige Aufgabe. MySQL bietet zu diesem Zweck eine Vielzahl von Funktionen und Techniken, einschließlich der Möglichkeit, Zahlen von Zeichenfolgen zu trennen.
Eine Möglichkeit, eine Zahl aus einer Zeichenfolge zu extrahieren, besteht darin, die Umwandlungsfunktionalität von MySQL zu nutzen. Mithilfe der Funktion CAST() können Sie eine Zeichenfolge implizit in einen numerischen Typ konvertieren und dabei nicht numerische Zeichen verwerfen. Beispielsweise gibt CAST('1234abc' AS UNSIGNED) 1234 zurück.
Eine andere Möglichkeit besteht darin, eine benutzerdefinierte Funktion zu verwenden. Sie können eine wiederverwendbare Lösung zum Extrahieren von Zahlen erstellen, indem Sie eine Funktion definieren, die die Eingabezeichenfolge durchläuft, den numerischen Wert jedes Zeichens überprüft und die Zahlen zu einer neuen Zeichenfolge verkettet. Betrachten Sie die folgende Funktion:
<code class="language-sql">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 = SUBSTR(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>
Nachdem Sie eine Funktion definiert haben, können Sie sie in einer Abfrage aufrufen, um Zahlen aus einer beliebigen Zeichenfolge zu extrahieren. Die folgende Abfrage gibt beispielsweise die Nummer 1234 zurück:
<code class="language-sql">SELECT ExtractNumber("abc1234def") AS number;</code>
Das obige ist der detaillierte Inhalt vonWie kann ich Ziffern aus alphanumerischen Zeichenfolgen in MySQL extrahieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!