首页 > 数据库 > mysql教程 > 如何从 MySQL 中的字母数字字符串中提取数字?

如何从 MySQL 中的字母数字字符串中提取数字?

Patricia Arquette
发布: 2025-01-09 16:52:42
原创
196 人浏览过

How Can I Extract Numbers from Alphanumeric Strings in MySQL?

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板