Heim > Datenbank > MySQL-Tutorial > Wie kann ich Ziffern aus Zeichenfolgen in MySQL extrahieren?

Wie kann ich Ziffern aus Zeichenfolgen in MySQL extrahieren?

DDD
Freigeben: 2025-01-09 16:57:46
Original
499 Leute haben es durchsucht

How Can I Extract Digits from Strings in MySQL?

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage