You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从MariaDB的userLabel字段中提取纯数字内容?

在MariaDB中提取userLabel中的数字部分

针对你的需求,这里提供几种适配不同场景的SQL实现方式:

场景1:数字固定在最后一个|分隔符之后

如果目标数字始终是userLabel字段中最后一个|分隔的内容,可以直接使用SUBSTRING_INDEX函数快速提取:

SELECT SUBSTRING_INDEX(userLabel, '|', -1) AS numeric_part
FROM cnf_network_function
WHERE nfType='du'
ORDER BY id DESC LIMIT 1;

SUBSTRING_INDEX(userLabel, '|', -1)的作用是:以|为分隔符,截取字符串的倒数第1段,正好匹配你例子中的123005011。

场景2:最后一段可能混有非数字字符

如果最后一段除了数字还存在其他字符,需要过滤掉非数字内容,可以结合SUBSTRING_INDEX和REGEXP_REPLACE:

SELECT REGEXP_REPLACE(SUBSTRING_INDEX(userLabel, '|', -1), '[^0-9]', '') AS numeric_part
FROM cnf_network_function
WHERE nfType='du'
ORDER BY id DESC LIMIT 1;

REGEXP_REPLACE(..., '[^0-9]', '')会把最后一段中的所有非数字字符替换为空,只保留数字部分。

场景3:提取字符串中所有数字(不考虑位置)

如果需要提取整个userLabel中的所有数字字符(无论位置),可以直接用REGEXP_REPLACE过滤:

SELECT REGEXP_REPLACE(userLabel, '[^0-9]', '') AS numeric_part
FROM cnf_network_function
WHERE nfType='du'
ORDER BY id DESC LIMIT 1;

注意:这种方式会提取字符串中所有数字,比如你例子中的11、1和123005011会被合并成111123005011,仅适用于需要全量数字的场景。

内容的提问来源于stack exchange,提问作者Naresh Ragi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 16:50:43