MySQL中使用CAST函数和自定义函数从字符串中提取数字
MySQL的CAST函数可以从字符串中提取数字,但前提是字符串必须以数字开头。要从任意字符串中提取数字,可以使用自定义函数,例如以下代码:
<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>
使用此函数,可以在MySQL查询中从字符串中提取数字:
<code class="language-sql">SELECT ExtractNumber("abc1234def") AS number;</code>
此查询将返回1234,因为自定义函数会遍历字符串,识别数字字符,并将它们连接成一个数字。
以上是如何从 MySQL 中的字符串中提取数字?的详细内容。更多信息请关注PHP中文网其他相关文章!