我正在研究MySQL并且列phone-number
。并尝试使用正则表达式而不是成功。
如何从此列中删除所有特殊字符?
phone-number
'8-903-400-65-38'
'+79265682388'
'8.10492E+15'
'8-913-469-38-35'
'+79882856253'
'+79110987703'
'+7 (495) 989-21-16'
'8142 77-55-51'
'+79378299427'
请问有人可以帮我解决这个问题吗?我不想丢失这些联系号码列表。
提前致谢
答案 0 :(得分:1)
这里的固定答案只是将MySQL REPLACE
函数的一系列调用链接在一起:
SELECT REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(phone-number, '-', ''), '+', ''), '.', ''), '(', ''), ')', ''), ' ', '')
这会从phone-number
列中删除以下字符:
- + . ( ) and space
更好的解决方案是使用正则表达式来进行替换,但是唉,MySQL没有任何内置支持正则表达式替换。
如果你不想要一个简陋的REPLACE
链,那么你可以编写一些动态的MySQL代码,它会迭代你定义的一组字符,并做一个数字对表的更新。以下是这样的更新:
UPDATE yourTable
SET phone-number = REPLACE(phone-number, '+', '')
您可以为每个角色执行一次更新并以这种方式处理。