MySQL字符串数字提取方法
MySQL 提供多种方法从字符串中提取数字。如果字符串以数字开头,可以使用CAST()
函数或隐式类型转换(例如,'1234abc' 0)来提取数字部分。
自定义函数处理任意字符串
对于包含非数字字符或数字不在字符串开头的字符串,可以创建自定义函数,例如ExtractNumber
:
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
自定义函数ExtractNumber
的使用
定义ExtractNumber
函数后,可在查询中使用:
SELECT ExtractNumber("abc1234def") AS number; -- 1234
通过使用此函数或CAST()
方法,可以从各种格式的MySQL字符串中提取数字。
以上是如何从 MySQL 中的字符串中提取数字?的详细内容。更多信息请关注PHP中文网其他相关文章!