我正在将数据导入到第三方CRM中,并且对电话号码字段的限制比源数据库(MySQL)的限制更严格。我想抓取选择中的前10个数字字符。我没有整理现有数据的灵活性。我只能用那里的东西工作。到目前为止,我在论坛上所能找到的似乎都是创建一个自定义函数。自定义函数是唯一的方法吗?环境是MySQL5.7.19。
提前道谢!
在MySQL5.7中,我会这样做:
SELECT LEFT(mycolumn, 10)+0 FROM ...
内置函数LEFT()只使用前N个字符。
+0
确保将其强制转换为数字,以防前N个字符包含一些非数字字符。在MySQL中转换为数值只是使用最左边的数字字符,当它到达非数字字符时,忽略其余的字符。
您可以先去掉连字符,然后使用上面显示的结果:
SELECT LEFT(REPLACE(mycolumn, '-', ''), 10)+0 FROM ...