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

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

DDD
發布: 2025-01-09 16:46:42
原創
885 人瀏覽過

How Can I Extract Digits from Alphanumeric Strings in MySQL?

MySQL 中從字母數字字串中提取數字

在資料庫程式設計中,從非結構化或混合型別字串中提取特定資料是一項常見任務。 MySQL 提供了多種函數和技術來實現此目的,包括從字串中分離數字的能力。

一種從字串中提取數字的方法是利用 MySQL 的強制轉換功能。透過使用 CAST() 函數,您可以隱式地將字串轉換為數值類型,從而丟棄非數字字元。例如,CAST('1234abc' AS UNSIGNED) 將傳回 1234。

另一種方法是使用自訂函數。透過定義函數,該函數迭代輸入字串,檢查每個字元的數值,並將數字連接到一個新字串中,您可以建立一個可重複使用的解決方案來提取數字。請考慮以下函數:

<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>
登入後複製

定義函數後,您可以在查詢中呼叫它以從任何字串中提取數字。例如,以下查詢將傳回數字 1234:

<code class="language-sql">SELECT ExtractNumber("abc1234def") AS number;</code>
登入後複製

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板