PostgreSQL检查与正则表达式匹配的表数

PostgreSQL检查与正则表达式匹配的表数,sql,string,postgresql,count,where-clause,Sql,String,Postgresql,Count,Where Clause,有没有一种好方法可以检查数据库中与特定格式匹配的现有表的数量 例如,我正在查找任何以'rangtable'开头的表名,例如'rangtable1','rangtable2','rangtable3'…等等,在本例中,它返回三个 我不确定在SQL领域中是否有需要搜索的查询或术语。我想到的最好方法是执行一个完整的表查询,然后执行一个fetchall(我正在使用Python和PostgreSQL),而不是尝试对结果进行一些正则表达式匹配 您可以查询: 如果需要匹配正则表达式(您提供的简单模式并非如此)

有没有一种好方法可以检查数据库中与特定格式匹配的现有表的数量

例如,我正在查找任何以
'rangtable'
开头的表名,例如
'rangtable1'
'rangtable2'
'rangtable3'
…等等,在本例中,它返回三个

我不确定在SQL领域中是否有需要搜索的查询或术语。我想到的最好方法是执行一个完整的表查询,然后执行一个fetchall(我正在使用Python和PostgreSQL),而不是尝试对结果进行一些正则表达式匹配

您可以查询:

如果需要匹配正则表达式(您提供的简单模式并非如此),可以使用类似于的运算符
,或者更好的是使用POSIX运算符
~

SELECT COUNT(*) AS cnt 
FROM INFORMATION_SCHEMA.TABLES 
WHERE table_name ~ '^rangtable';
您可以查询:

如果需要匹配正则表达式(您提供的简单模式并非如此),可以使用类似于的运算符
,或者更好的是使用POSIX运算符
~

SELECT COUNT(*) AS cnt 
FROM INFORMATION_SCHEMA.TABLES 
WHERE table_name ~ '^rangtable';

这适用于数字1-9,对于数字后缀未知的情况,是否希望“rangtable”涵盖所有情况,如rangtable110或rangtable001?我想像regex这样复杂的东西在这种查询中是不存在的?是的,
%
是通配符,它匹配0到N个字符的任何序列…如果你想要更多(实际上:更少),你必须考虑更多。这对于数字1-9非常有效,对于数字后缀未知的情况,“rangtable”是否涵盖rangtable110或rangtable001等所有情况?我想像regex这样复杂的东西在这种查询中是不存在的?是的,
%
是通配符,它匹配0到N个字符的任何序列……如果你想要更多(实际上:更少),你必须考虑更多。