我想搜索数字,但其中一些数字之间有-字符或空格。有没有一种方法,
-
select numbersonly(phone) from table
?
kqhtkvqz1#
在你的WHERE子句中包含:
WHERE CONVERT(your_column, SIGNED INTEGER) IS NOT NULL
并使用REPLACE函数对其进行增强。因此,根据SELECT语句,更新后的内容可能如下所示:
SELECT phone FROM table WHERE CONVERT(REPLACE(REPLACE(phone, '-', ''), ' ', ''), BIGINT) IS NOT NULL
62lalag42#
如果你想做的是选择某个text/varchar列,但你想去掉它的数据,除了数字,你有两个选择:1.在检索时剥离非数字使用此查询:
SELECT your_column FROM table WHERE ...
并在从数据库中检索结果时删除所有非数字字符。或者...1.在插入前删除非数字当您将数据插入到数据库中时,在插入之前去掉所有字符,并使用与上面相同的查询进行选择。根据您的情况,上述之一可能比另一个更合适。祝你好运!
ghhaqwfi3#
看起来莱伊想从一个瓦查专栏里找到电话号码。最好的方法是从数据库中提取记录,并对结果中的所有非数字字符执行正则表达式。
**编辑:**Incrediman提出了一个很好的观点,剥离不需要的字符从什么听起来像一个专用的电话号码字段将是你最好的选择,当他们正在从表单输入.
但是,由于表中已经有信息,所以可以提取数据,用正则表达式去除不需要的字符,并以您想要的格式将其放置在页面上,或者对数字字符串执行任何您想要的魔术。
i2byvkas4#
您可能希望在RLIKE中使用正则表达式匹配。文档是here。
4条答案
按热度按时间kqhtkvqz1#
在你的WHERE子句中包含:
并使用REPLACE函数对其进行增强。
因此,根据SELECT语句,更新后的内容可能如下所示:
62lalag42#
如果你想做的是选择某个text/varchar列,但你想去掉它的数据,除了数字,你有两个选择:
1.在检索时剥离非数字
使用此查询:
并在从数据库中检索结果时删除所有非数字字符。
或者...
1.在插入前删除非数字
当您将数据插入到数据库中时,在插入之前去掉所有字符,并使用与上面相同的查询进行选择。
根据您的情况,上述之一可能比另一个更合适。
祝你好运!
ghhaqwfi3#
看起来莱伊想从一个瓦查专栏里找到电话号码。最好的方法是从数据库中提取记录,并对结果中的所有非数字字符执行正则表达式。
**编辑:**Incrediman提出了一个很好的观点,剥离不需要的字符从什么听起来像一个专用的电话号码字段将是你最好的选择,当他们正在从表单输入.
但是,由于表中已经有信息,所以可以提取数据,用正则表达式去除不需要的字符,并以您想要的格式将其放置在页面上,或者对数字字符串执行任何您想要的魔术。
i2byvkas4#
您可能希望在RLIKE中使用正则表达式匹配。文档是here。