MySQL判断某个数字或者字段是不是数字有两种方法,如下:
-
使用正则表达式(查询结果为1表示true,为0表示false)
通过判断是否包含数字以外的字符,来判断值是否为纯数字
SELECT '1234' REGEXP '[^0-9]'
查询结果为0,表示1234
不包含数字以为的字符,所以1234
为纯数字SELECT 'ssss1234' REGEXP '[^0-9]
查询结果为1,表示ssss1234
包含数字以外的字符,所以ssss1234
不是纯数字 -
使用LENGTH函数判断
SELECT LENGTH(0+'123') = LENGTH('123') FROM DUAL
查询结果为 1,纯数字SELECT LENGTH(0+'12ab3c') = LENGTH('12ab3c') FROM DUAL
查询结果为0,不是纯数字SELECT LENGTH(0+'ssss1234') = LENGTH('ssss1234') FROM DUAL
查询结果为0,不是纯数字
FYI