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

如何使用SQL查询仅以a开头、末尾为数字的符合规则的表名

问题根因

你编写的语句不生效核心有两点:

  1. MySQL LIKE 语法中_是内置通配符,代表匹配任意1个字符,你没有对需要匹配的字面下划线做转义,匹配逻辑和预期完全不符
  2. 原有规则既没有覆盖末尾的数字后缀,也没有排除ab_*这类前缀携带其他字母的表

实现方案

方案1:使用正则精准匹配(推荐,写法灵活无硬编码)

直接查询information_schema系统表,配合正则匹配即可,正则规则^a_[0-9]+$的含义为:以a_开头,中间仅包含1位或多位数字,无其他多余字符:

SELECT table_name 
FROM information_schema.tables 
WHERE table_schema = DATABASE() 
AND table_name REGEXP '^a_[0-9]+$';

方案2:使用LIKE语法实现(兼容性更强,适配老版本MySQL)

如果你的数据库版本不支持正则匹配,可以用转义下划线+双重过滤的写法实现,注意把语句中的你的数据库名替换为实际使用的库名:

SHOW TABLES 
WHERE `Tables_in_你的数据库名` LIKE 'a\_%' 
AND RIGHT(`Tables_in_你的数据库名`, 1) BETWEEN '0' AND '9';

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 07:57:01