我有一个电话字段列,其中包含类似的电话号码
'123456789'
'123-456-789'
等
表示它包含9位数字或数字+连字符。
我想创建一个SQL查询,以'xxx-xxx-xxx'
格式更新所有记录。
我做了一些尝试,但无法得到确切的解决方案。
请任何人帮助我。 在此先感谢.....
答案 0 :(得分:2)
使用类似
的内容UPDATE mytable SET phone =
CONCAT(SUBSTRING(phone, 1, 3),'-',SUBSTRING(phone, 4, 3),'-',SUBSTRING(phone, 7, 3))
另外,为了只获取缺少连字符的行,您会说WHERE phone not like '%-%'
答案 1 :(得分:0)
关闭。在添加更多内容之前,您首先需要测试字符串是否包含' - ',但这是正确的轨道。
更新mytable SET phone = CONCAT(SUBSTRING(phone,1,3),' - ',SUBSTRING(phone,4,3),' - ',SUBSTRING(phone,7,4)) 其中INSTR(电话,' - ')= 0;