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

MySQL基础问题答疑:字符串提取数字与带逗号数值转换

MySQL问题解决方案

问题1:从'R1001'这类字符串中提取数字

错误原因

执行代码时提示table/view does not exist,是因为表名拼写错误:retailoutet应为retailoutlet(缺失字母l)。

解决方法

  • 若字符串前缀固定为1个非数字字符,修正表名后原代码即可生效:
    SELECT SUBSTR(roid, 2) AS numericroid FROM retailoutlet;
    
  • 若前缀长度不固定(如存在'AB123'这类格式),推荐用正则替换移除所有非数字字符,适配性更强:
    SELECT REGEXP_REPLACE(roid, '[^0-9]', '') AS numericroid FROM retailoutlet;
    

问题2:将带逗号的数字字符串'2,50,000'转换为数值250000

错误原因

MySQL中不存在to_number()函数(该函数为Oracle等数据库专属语法),因此会触发“无效数字”错误。

解决方法

先移除字符串中的逗号,再转换为数值类型,可使用CAST()或CONVERT():

SELECT CAST(REPLACE('2,50,000', ',', '') AS UNSIGNED) AS num;
-- 或使用CONVERT语法
SELECT CONVERT(REPLACE('2,50,000', ',', ''), UNSIGNED) AS num;

若需处理负数场景,将UNSIGNED替换为SIGNED即可。

内容的提问来源于stack exchange,提问作者Julius Caesar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 15:43:12