首頁 >資料庫 >mysql教程 >如何從 MySQL 中的字串中提取數字?

如何從 MySQL 中的字串中提取數字?

DDD
DDD原創
2025-01-09 16:57:46572瀏覽

How Can I Extract Digits from Strings in MySQL?

MySQL 中從字串中提取數字

在處理字母數字字串時,出於各種資料處理需求,需要分離數字。 MySQL 提供多種方法來實現此目標。

對於以數字字元開頭後跟非數字字元的字串,可以使用 CAST() 或隱式轉換:

<code class="language-sql">SELECT CAST('1234abc' AS UNSIGNED); -- 1234
SELECT '1234abc'+0; -- 1234</code>

要從任意結構的字串中提取數字,可以定義像 ExtractNumber 這樣的自訂函數:

<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>

定義自訂函數 ExtractNumber 後,可以在查詢中使用它:

<code class="language-sql">SELECT ExtractNumber("abc1234def") AS number; -- 1234</code>

以上是如何從 MySQL 中的字串中提取數字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn