我有一个字符串(德国电话号码),包括字符串中的前缀,没有像这样的任何分隔:phone = 030123456
.
由于前缀没有唯一长度,因此必须对照另一个包含所有前缀编号的表进行检查。
如何将字符串分成前缀和数字?
prefix = 030, number = 123456
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
您可以使用这样的查询:
SELECT
prefixes.prefix,
SUBSTRING(phones.phone, LENGTH(prefixes.prefix)+1) number
FROM
phones INNER JOIN prefixes
ON phones.phone LIKE CONCAT(prefixes.prefix, '%')
请在此处查看小提琴。