mysql 如何判断 “字符串“ 是否为 “数字“
Posted 沛沛老爹
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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()函数。
以上是关于mysql 如何判断 “字符串“ 是否为 “数字“的主要内容,如果未能解决你的问题,请参考以下文章