You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SHOW TABLES语句中排除以old结尾的表?正则语法咨询

用正则排除以old结尾的表(适配表查询语句)

不同数据库的语法略有差异,核心是通过正则匹配包含目标字符、同时排除以old结尾的表名:

MySQL 写法

直接在SHOW TABLES后加WHERE子句,结合正则匹配和反向排除:

SHOW TABLES IN your_database 
WHERE Tables_in_your_database REGEXP '.*match.*' 
AND Tables_in_your_database NOT REGEXP 'old$';
  • .*match.*:对应原语句的*match*,匹配表名任意位置包含match的表
  • old$:$锚定字符串结尾,精准匹配以old结尾的表
  • NOT REGEXP用于排除符合该规则的表

PostgreSQL 写法

PostgreSQL没有SHOW TABLES的直接正则过滤,可通过查询系统表实现:

SELECT table_name 
FROM information_schema.tables 
WHERE table_schema = 'your_database'
AND table_name ~ '.*match.*' 
AND table_name !~ 'old$';
  • ~是PostgreSQL的正则匹配运算符,!~表示不匹配

核心正则逻辑

不管用哪种数据库,核心正则规则是:

  • 匹配包含match:.*match.*(.匹配任意字符,*表示匹配0次或多次)
  • 排除以old结尾:old$($强制匹配字符串末尾)

内容的提问来源于stack exchange,提问作者Roelant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 06:47:01