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