根据第二个表分隔字符串

时间:2013-06-20 10:19:12

标签: mysql string

我有一个字符串(德语电话号码),包括字符串中的前缀,没有像这样的任何分隔:phone = 030123456

由于前缀没有唯一的长度,因此必须根据包含所有前缀号码的另一个表进行检查。

如何将字符串分隔为前缀和数字?

prefix = 030, number = 123456

2 个答案:

答案 0 :(得分:1)

select Number, 
       coalesce(Prefix, 'Unrecognized') AS Prefix, 
       substr(Number, length(Prefix)+1) AS LocalPart,
       coalesce(Name, 'Unknown') AS Region
from Phone
left join Prefix on substr(Number, 1, length(Prefix)) = Prefix

Sample fiddle here

答案 1 :(得分:1)

你可以使用这样的查询:

SELECT
  prefixes.prefix,
  SUBSTRING(phones.phone, LENGTH(prefixes.prefix)+1) number
FROM
  phones INNER JOIN prefixes
  ON phones.phone LIKE CONCAT(prefixes.prefix, '%')

请参阅小提琴here