我已经找到了“How to format a numeric column as phone number in SQL”,但它只是毁掉了我的号码。
我有一个类似064184335
的电话号码,并希望将其格式化为+49 641 84335
。
我试过了:
UPDATE vtiger_contactdetails
SET phone = '+49' +' '+ SUBSTRING(phone, 2, 2 ) + ' ' + SUBSTRING(phone, 4, 3)
但我得到295
作为电话号码。
此外,第二个3
中的SUBSTRING
应该是电话号码的其余部分。
如果我想更改不同表格中的每个电话号码,请不要使用:
UPDATE vtiger_account, vtiger_contactdetails, vtiger_contactsubdetails
SET vtiger_account.phone = CONCAT('+49', ' ', SUBSTRING(vtiger_account.phone, 2, 3 ), ' ', SUBSTRING(vtiger_account.phone, 5, length(vtiger_account.phone)))
SET vtiger_account.otherphone = CONCAT('+49', ' ', SUBSTRING(vtiger_account.otherphone, 2, 3 ), ' ', SUBSTRING(vtiger_account.otherphone, 5, length(vtiger_account.otherphone)))
SET vtiger_contactdetails.phone = CONCAT('+49', ' ', SUBSTRING(vtiger_contactdetails.phone, 2, 3 ), ' ', SUBSTRING(vtiger_contactdetails.phone, 5, length(vtiger_contactdetails.phone)))
SET vtiger_contactdetails.mobile = CONCAT('+49', ' ', SUBSTRING(vtiger_contactdetails.mobile, 2, 3 ), ' ', SUBSTRING(vtiger_contactdetails.mobile, 5, length(vtiger_contactdetails.mobile)))
SET vtiger_contactsubdetails.homephone = CONCAT('+49', ' ', SUBSTRING(vtiger_contactsubdetails.homephone, 2, 3 ), ' ', SUBSTRING(vtiger_contactsubdetails.homephone, 5, length(vtiger_contactsubdetails.homephone)))
SET vtiger_contactsubdetails.otherphone = CONCAT('+49', ' ', SUBSTRING(vtiger_contactsubdetails.otherphone, 2, 3 ), ' ', SUBSTRING(vtiger_contactsubdetails.otherphone, 5, length(vtiger_contactsubdetails.otherphone)))
SET vtiger_contactsubdetails.assistantphone = CONCAT('+49', ' ', SUBSTRING( vtiger_contactsubdetails.assistantphone, 2, 3 ), ' ', SUBSTRING( vtiger_contactsubdetails.assistantphone, 5, length( vtiger_contactsubdetails.assistantphone)))
如何忽略已格式化的数字?
答案 0 :(得分:0)
我猜你正在使用MySQL。连接字符串的方法是concat()
:
UPDATE vtiger_contactdetails
SET phone = CONCAT('+49', ' ', SUBSTRING(phone, 2, 2 ), ' ', SUBSTRING(phone, 4, 3));
要获取所有字符,只需使用SUBSTRING()
的两个参数:
UPDATE vtiger_contactdetails
SET phone = CONCAT('+49', ' ', SUBSTRING(phone, 2, 2 ), ' ', SUBSTRING(phone, 4));
请注意,这适用于MySQL,但不适用于所有数据库。
答案 1 :(得分:0)
尝试修改后的查询:
SELECT '+49' +' '+ SUBSTRING('064184335', 2, 3 ) + ' '
+ SUBSTRING('064184335' , 5, 5)
仅使用+
进行更新:
UPDATE vtiger_contactdetails
SET phone = '+49' +' '+ SUBSTRING(phone, 2, 3 ) + ' '
+ SUBSTRING(phone , 5, 5)
使用CONCAT
:
UPDATE vtiger_contactdetails
SET phone = CONCAT('+49', ' ',
SUBSTRING(phone, 2, 3 ), ' ', SUBSTRING(phone, 5, 5))