ech*_*cho 1 sql string postgresql count where-clause
有没有一种好方法来检查数据库中匹配特定格式的现有表的数量?
例如,我正在查找任何以 开头的表名'rangtable',例如'rangtable1', 'rangtable2', 'rangtable3'.... 等,在这种情况下,它返回三个。
我不确定是否有需要在 SQL 领域中搜索的查询或术语。我想出的最好办法是执行全表查询,然后执行 fetchall (我使用 Python 和 PostgreSQL),而不是尝试对结果进行一些正则表达式匹配。
您可以查询PostgresINFORMATION_SCHEMA.TABLES视图:
SELECT COUNT(*) AS cnt
FROM INFORMATION_SCHEMA.TABLES
WHERE table_name LIKE 'rangtable%';
Run Code Online (Sandbox Code Playgroud)
如果您需要匹配正则表达式(这不是您提供的简单模式的情况),您可以使用运算符SIMILAR TO,或者更好的是 POSIX 运算符~:
SELECT COUNT(*) AS cnt
FROM INFORMATION_SCHEMA.TABLES
WHERE table_name ~ '^rangtable';
Run Code Online (Sandbox Code Playgroud)