mysql 匹配字符串中是否包含数字

今天需要写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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值