mysql 如何判断 “字符串“ 是否为 “数字“

背景

因为设计的失误,需要将原来存在库里面的字段从varchar类型修改为int类型。并且重新存储值,字段在操作中需要进行数据运算。

解决思路

1、查找看是否有对应的操作函数。

结果:没有找到

2、其它方式。是否可以使用类似于开发语言中的方式呢?

百度了下,发现网上有人推荐REGEXP 运算符。

格式如下

{str} REGEXP {pattern}

{str} 代表匹配的字符。

{pattern}代表匹配的模式

返回结果,如果匹配成功,则返回true,否则返回false。

按照思路,如果我们要匹配是否是数字字符串。我们需要pattern这里使用字符就可以了。

解决

pattern = [^0-9.] 这个的意思是不包含0-9以及. 即如果String中含有不是0-9之间的数字或者是小数点时,返回true ,反之则返回false。

select ('123f' REGEXP '[^0-9.]'); 
结果返回1。

select ('123' REGEXP '[^0-9.]');

结果返回0。

补充说明

如果字符串中有空格,也会匹配到正则表达式,返回1。如果是要去掉两端的空格,就要将判断的字符串,就要对字符串使用 trim()函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值