MySQL正则不支持-d和大小写的问题
最后更新于
这有帮助吗?
最后更新于
这有帮助吗?
这两天碰到一个问题
上网一搜
发现他是一个MySQL官方认证的Bug
Bug号是
70413
大概意思就是
MySQL的正则里面不支持\d
大家看啊
这是个0
它 \d 返回的是0
就是假的
那我们要给他改成0杠9呢
他就是真了
那官方的答复是除了这样写呢
他还可以使用 POSIX 的表达式
这样写
把它复制一下
这样写我们来试一下
他也是可以的
比如说我们是多个
看看他也是可以的
那根据这个呢
我后来又发现一个好玩的东西
就是
因为我就好奇
他这个表达是还有其他的语法没有
我就看了一下他给的这个链接
进去以后呢找到了这个
但因为这个不是很直观哈
我又从网上找到这样一个图
然后呢
这里边就多了两个MySQL不支持的
一个是
word
不支持还有一个是 ascii
其他的都支持
后来我试到这个 upper 和 lower 的时候
发现有问题
大家看啊
这些个 upper 按说他只支持(匹配)大写
但是呢 我写个小写,大家看
他也认为是真的
包括我这里边写 lower
然后呢这写个大写
他也不认识(匹配为真)
开始哈我以为这又是一个 bug
后来发现其实不是
其实就是MySQL
对大小写不敏感的问题
所以呢
解决这个问题可以在这加一个 binary
做一个转换
大家看 这样就区分了(正则发现不匹配了)
小写就可以了(匹配了)
或者把 binary 放前面
这样也可以
比如说这写一个upper
ok 这样就可以了