我试图从建筑地址(如111A )中删除尾随字母。
我可以通过以下方式找到这些模式:
Select Address from Table where Address Regexp '^[0-9]{1,6}[A-Z] '但是,我不知道如何或者是否可以在替换中包含regexp,这样我就不必做10*26不同的替换。
Update Table set Address=Replace(Address,'0A','0') where Address like '%0A %'和某种(我试过的):
Update Table set Address=Replace(Address,regexp ([0-9]{1,6})[A-Z],\1)
where Address Regexp '^[0-9]{1,6}[A-Z] '发布于 2016-05-28 15:58:58
我还没有找到Regex的替代品,但这似乎是目前的工作。我忘了提到这些都是完整的大楼地址,比如‘华盛顿街111A’。这就是我最后所做的:
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_index和char_length来替换它可以让您获得很长的一段路。请在这里看到我对后续问题的类似解决方案:Replace using Locate and/.or regex?
发布于 2016-05-28 15:51:59
https://stackoverflow.com/questions/37500967
复制相似问题