首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MySql替换与Regex

MySql替换与Regex
EN

Stack Overflow用户
提问于 2016-05-28 15:45:03
回答 2查看 6.7K关注 0票数 2

我试图从建筑地址(如111A )中删除尾随字母。

我可以通过以下方式找到这些模式:

代码语言:javascript
运行
复制
Select Address from Table where Address Regexp '^[0-9]{1,6}[A-Z] '

但是,我不知道如何或者是否可以在替换中包含regexp,这样我就不必做10*26不同的替换。

代码语言:javascript
运行
复制
Update Table set Address=Replace(Address,'0A','0') where Address like '%0A %'

和某种(我试过的):

代码语言:javascript
运行
复制
Update Table set Address=Replace(Address,regexp ([0-9]{1,6})[A-Z],\1) 
where Address Regexp '^[0-9]{1,6}[A-Z] '
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-28 15:58:58

我还没有找到Regex的替代品,但这似乎是目前的工作。我忘了提到这些都是完整的大楼地址,比如‘华盛顿街111A’。这就是我最后所做的:

代码语言:javascript
运行
复制
Update Table set Address=
concat(
left(SUBSTRING_INDEX(Address,' ',1),CHAR_LENGTH(SUBSTRING_INDEX(Address,' ',1))-1),
right(Address,(CHAR_LENGTH(Address)-CHAR_LENGTH(SUBSTRING_INDEX(Address,' ',1))))
)
where Address Regexp '^[0-9]{1,6}[A=Z] '

在这个项目中花费时间在类似的挑战上之后,我的结论是,除非regex集成到诸如更新之类的函数中,否则使用substring_indexchar_length来替换它可以让您获得很长的一段路。请在这里看到我对后续问题的类似解决方案:Replace using Locate and/.or regex?

票数 1
EN

Stack Overflow用户

发布于 2016-05-28 15:51:59

我可以在替换中包含regexp吗?

不,不是在MySQL。叹一口气。缺少特征。

这样做有一个扩展,但是要安装它,您需要能够控制您的MySQL服务器。这里:preg#readme

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37500967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档