我有这个要求:从客户表中 - 返回电话号码的前缀。我尝试使用字符串,将全名拆分为名字/姓氏,但它只适用于数字。完整的 nb 格式为 (258) 1231456
问问题
189 次
3 回答
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;
于 2013-07-18T09:23:25.300 回答
1
根据您的理解,您可以使用 substring(string,position,length) 例如
SELECT SUBSTRING(phonenumbercolumn,1,3) AS prefix
FROM customer;
于 2013-07-18T09:19:49.477 回答
0
您可以使用 MySQL 函数 SUBSTRING_INDEX,它可以很好地使用字符分隔符拆分字符串。因此,在您的情况下,您使用 ')' 作为分隔符并将所有内容返回到左侧。这样一来,号码是像 (+48 222) 还是像 (333) 都无关紧要。请注意,数字 1 表示您的分隔符的第一次出现,因此如果您有这么多 ')' 字符,则必须小心。
SELECT SUBSTRING_INDEX('(258) 1231456', ')', 1);
于 2013-07-18T09:48:09.923 回答