MySql如何将一个表中的电话字段分成两个单独的表中的前缀/数字?

时间:2013-07-18 09:08:57

标签: mysql

我有这个需求:来自客户表 - 返回电话号码的前缀。我尝试使用字符串,因为将全名拆分为名/姓,但它只适用于数字。 完整的nb格式是(258)1231456

3 个答案:

答案 0 :(得分:1)

根据您的理解,您可以使用子串(字符串,位置,长度),例如

SELECT SUBSTRING(phonenumbercolumn,1,3) AS prefix 
FROM customer;

答案 1 :(得分:1)

SELECT '(258) 1231456' org,
   TRIM(SUBSTRING_INDEX(TRIM(LEADING '(' FROM '(258) 1231456'), ')', 1)) prefix,
   TRIM(SUBSTRING_INDEX(TRIM(LEADING '(' FROM '(258) 1231456'), ')', -1)) number;

答案 2 :(得分:0)

您可以使用MySQL函数SUBSTRING_INDEX,它可以很好地使用字符分隔符拆分字符串。因此,在您的情况下,您使用')'作为分隔符并将所有内容返回到左侧。这样,如果数字(+48 222) - 或类似(333),则不会产生任何关系。请注意,数字1表示分隔符的第一次出现,所以如果你有很多')'字符,你必须要小心。

SELECT SUBSTRING_INDEX('(258) 1231456', ')', 1);