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中文網其他相關文章!