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 如何判断 “字符串“ 是否为 “数字“的主要内容,如果未能解决你的问题,请参考以下文章

Oracle中如何判断字符串是否全为数字

delphi中如何判断是否数字?

js如何判断字符是中文,英文,数字还是字符

awk 如何判断一个字符串是不是为纯数字?

SQL查询中,如何判断一个字符串字段的内容的长度

java验证字符串是不是为数字