MySQL字串數位擷取方法
MySQL 提供多種方法從字串中提取數字。如果字串以數字開頭,可以使用CAST()
函數或隱式類型轉換(例如,'1234abc' 0)來提取數字部分。
自訂函數處理任意字串
對於包含非數字字元或數字不在字串開頭的字串,可以建立自訂函數,例如ExtractNumber
:
<code class="language-sql">CREATE FUNCTION `ExtractNumber`(in_string VARCHAR(50)) RETURNS INT NO SQL BEGIN DECLARE inti INT DEFAULT 0; DECLARE sChar CHAR(1); DECLARE finNumber VARCHAR(50) DEFAULT ""; DECLARE strLength INT; SET strLength = LENGTH(in_string); WHILE(inti < strLength) DO SET sChar = SUBSTRING(in_string, inti + 1, 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); END</code>
自訂函數ExtractNumber
的使用
定義ExtractNumber
函數後,可在查詢中使用:
<code class="language-sql">SELECT ExtractNumber("abc1234def") AS number; -- 1234</code>
透過使用此函數或CAST()
方法,可以從各種格式的MySQL字串中提取數字。
以上是如何從 MySQL 中的字串中提取數字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!