MySQL:更新条件列的问题

时间:2011-02-07 13:48:30

标签: mysql

我有一个电话字段列,其中包含类似的电话号码

'123456789'

'123-456-789'

表示它包含9位数字或数字+连字符。

我想创建一个SQL查询,以'xxx-xxx-xxx'格式更新所有记录。 我做了一些尝试,但无法得到确切的解决方案。

请任何人帮助我。 在此先感谢.....

2 个答案:

答案 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;