mysql 匹配字符串中是否包含数字
今天需要写sql查找出字段中包含数字的行,因为没有用过,只好百度,得到写法如下:select name from text where name regex '[0-9]'在通过上面的语句找出有问题的行之后,需要截取掉数字,我的数据中的数字斗志在最后一位,所以就写了下面的sqlselect name, substr(name,1, length(name) - 1) from test...
·
今天需要写sql查找出字段中包含数字的行,因为没有用过,只好百度,得到写法如下:
select name from text where name regex '[0-9]'
在通过上面的语句找出有问题的行之后,需要截取掉数字,我的数据中的数字斗志在最后一位,所以就写了下面的sql
select name, substr(name,1, length(name) - 1) from test where name regex '[0-9]'
结果发现截取之后的数据竟然和原来的数据一样,例如:张三1,截取后还是张三1;
我把 length(name),也显示出来,结果如下:
张三1 张三1 7
从结果上看到【张三1】的长度是7,因此substr截取的是1-6 的,所以结果仍然是【张三1】,这时候,我发现了另外一个长度函数 char_length,这个函数返回的长度是3,所以使用这个行数就可以了。
select name, substr(name,1, char_length(name) - 1) from test where name regex '[0-9]'
更多推荐
已为社区贡献1条内容
所有评论(0)