Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PostgreSQL中选择以数字开头的行?_Sql_Postgresql - Fatal编程技术网

如何在PostgreSQL中选择以数字开头的行?

如何在PostgreSQL中选择以数字开头的行?,sql,postgresql,Sql,Postgresql,需要获取以数字开头的行,例如“1test”、“32 test”。 我试过了 正如我以前在MSSQL中所做的那样,但没有成功。尝试以下方法: SELECT * FROM table WHERE name ~ '^[0-9]' 这使用了POSIX正则表达式。根据,您可以使用类似于的而不是类似于的来执行类似正则表达式的匹配,并使用~来执行完整的POSIX正则表达式匹配。此解决方案可能比正则表达式更快,因为正则表达式需要大量CPU: SELECT ... FROM "table" WHERE subs

需要获取以数字开头的行,例如“1test”、“32 test”。 我试过了

正如我以前在MSSQL中所做的那样,但没有成功。

尝试以下方法:

SELECT * FROM table WHERE name ~ '^[0-9]'

这使用了POSIX正则表达式。

根据,您可以使用类似于的
而不是类似于的
来执行类似正则表达式的匹配,并使用
~
来执行完整的POSIX正则表达式匹配。

此解决方案可能比正则表达式更快,因为正则表达式需要大量CPU:

SELECT ... FROM "table" WHERE substr(name, 1, 1) BETWEEN '0' AND '9';

谢谢大家。这对任何可能从中受益的人都有帮助,如果您想要相反的结果(以数字以外的数字开头的记录),请使用前面的“not”运算符,即
!~”^[0-9]”
SELECT ... FROM "table" WHERE substr(name, 1, 1) BETWEEN '0' AND '9';