MySQL 字串中數字的擷取方法
在處理MySQL中的字母數字字串時,有時需要提取其中的數字。這可以透過多種方法實現。
使用明確轉換
如果字串以數字字元開頭,可以使用CAST()
函數或在開頭添加0將其轉換為整數。例如:
<code class="language-sql">SELECT CAST('1234abc' AS UNSIGNED); -- 1234 SELECT '1234abc'+0; -- 1234</code>
使用自訂函數擷取數字
對於字串中可能包含非數字字元的更複雜的情況,可以建立一個自訂函數來只提取數字。一個這樣的函數是:
<code class="language-sql">CREATE FUNCTION `ExtractNumber`(in_string VARCHAR(50)) RETURNS INT 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</code>
應用自訂函數
定義函數後,可以在查詢中使用它來從字串中提取數字。例如:
<code class="language-sql">SELECT ExtractNumber("abc1234def") AS number; -- 1234</code>
以上是如何從 MySQL 中的字母數字字串中提取數字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!