我想搜索数字,但其中有些数字 - 中间有字符或空格,有没有办法像
从表格中选择号码(电话)
感谢。
答案 0 :(得分:3)
在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
答案 1 :(得分:1)
似乎Lye想要从varchar列中提取电话号码。执行此操作的最佳方法可能是从数据库中提取记录并对结果中的所有非数字字符执行正则表达式。
编辑:Incrediman提出了一个很好的观点,当从表单输入时,从听起来像专用电话号码字段的内容中删除不需要的字符将是您最好的选择。
但由于表格中已有信息,请提取数据,使用正则表达式删除不需要的字符,然后将其以您想要的格式放在页面上,或者使用数字字符串执行您想做的任何魔术。
答案 2 :(得分:1)
如果您要做的是选择某个text / varchar列,但是您想要删除除数字之外的所有内容的数据,那么您有两个选项可供选择:
在检索时删除非数字
使用此查询:
SELECT your_column FROM table WHERE ...
当您以编程方式从数据库中检索结果时,删除所有非数字字符。
或...
剥离非数字预插入
当您将数据插入数据库时,请在插入之前删除所有字符,并使用与上面相同的查询进行选择。
根据您的情况,上述其中一种可能比另一种更合适。
祝你好运!答案 3 :(得分:0)
您可能希望使用与RLIKE匹配的正则表达式。文档为here。