使用正则表达式仅获取数字

11

我在表格列中有pnum_s

我需要获取只有那些在列pnum_s值恰好为10个数字的行

我应该写什么查询语句?

我尝试了

SELECT * FROM mytable WHERE pnum_s REGEXP '^\d+$'

但是这没有返回任何行


你需要转义\d吗? - Mike Christensen
可能我不熟悉MySQL如何处理正则表达式,但根据(http://www.regular-expressions.info/mysql.html)所述,反斜杠需要转义。问题可能在于您应该使用`\$`而不是`$`。 - David Starkey
4个回答

23
你正在寻找的模式可能是'^[0-9]{10}$''^[[:digit:]]{10}$'
一切都在手册中。

我可以使用 where column_name REGEXP '[0-9]' 这个语句吗?它也能正常工作。 - Brij
@RandomSeed,有没有办法限制只输入字母和数字的值? - er.irfankhan11

7
我认为对于Mysql,您需要使用以下内容:

我认为对于Mysql,您需要使用以下内容:

^[[:digit:]]{10}$

6

2
尝试使用这个模式:
'^[0-9]{10}$'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接