当前位置: 首页 > 知识库问答 >
问题:

是否可以在MySQL中仅从VARCHAR字段中选择数字字符而不使用自定义函数?

袁枫涟
2023-03-14

我正在将数据导入到第三方CRM中,并且对电话号码字段的限制比源数据库(MySQL)的限制更严格。我想抓取选择中的前10个数字字符。我没有整理现有数据的灵活性。我只能用那里的东西工作。到目前为止,我在论坛上所能找到的似乎都是创建一个自定义函数。自定义函数是唯一的方法吗?环境是MySQL5.7.19。

提前道谢!

共有1个答案

戚升
2023-03-14

在MySQL5.7中,我会这样做:

SELECT LEFT(mycolumn, 10)+0 FROM ...

内置函数LEFT()只使用前N个字符。

+0确保将其强制转换为数字,以防前N个字符包含一些非数字字符。在MySQL中转换为数值只是使用最左边的数字字符,当它到达非数字字符时,忽略其余的字符。

您可以先去掉连字符,然后使用上面显示的结果:

SELECT LEFT(REPLACE(mycolumn, '-', ''), 10)+0 FROM ...
 类似资料:
  • 问题内容: 我正在使用ColdFusion 8和SQL Server 2008 R2。 我试图查询一列值以获取具有范围内的值的行。该列应为数字,但不是。它被设置为varchar(由其他人)。有100,000多行数据。这是数据的伪样本: 我的查询如下所示: 该查询不会运行,因为where语句的列是varchar,并且出现转换错误,因此我必须将where语句更改为此: 现在,当我运行这样的查询时,它会

  • 本文向大家介绍如何从MySQL的varchar列中仅选择非数字值?,包括了如何从MySQL的varchar列中仅选择非数字值?的使用技巧和注意事项,需要的朋友参考一下 您需要为此使用REGEXP。语法如下 为了理解这个概念,让我们创建一个表。创建表的查询如下 使用insert命令在表中插入一些记录。查询如下 使用select语句显示表中的所有记录。查询如下 以下是输出 这是选择非数字值的查询 以下

  • 问题内容: 我正在尝试使用以下命令选择MySQL中仅包含字母数字字符的所有行: 但是,它将返回所有行,而不管它们包含非字母数字字符的事实。 问题答案: 试试这个代码: 这样可以确保所有字符都匹配。

  • 我有一个带有varchar类型电子邮件字段的表。 除表中的一封电子邮件外,其他所有电子邮件都能正常工作。

  • 问题内容: 考虑下表: 如何编写仅返回 数字 值的select语句 SQLFiddle 问题答案:

  • 问题内容: 我正在寻找一个php函数,该函数将接受一个输入字符串,并通过去除所有仅保留字母数字的特殊字符来返回其净化版本。 我需要另一个功能相同但仅返回字母字符AZ的函数。 任何帮助,不胜感激。 问题答案: 警告:请注意,英语不仅限于AZ。 尝试执行以下操作删除az,AZ和0-9以外的所有内容: 如果字母数字的定义包括外语字母和过时的脚本,则您将需要使用Unicode字符类。 尝试以下操作仅保留A