仅在 mysql “show tables” 中显示具有特定模式的表

Posted

技术标签:

【中文标题】仅在 mysql “show tables” 中显示具有特定模式的表【英文标题】:Only show tables with certain patterns in mysql "show tables" 【发布时间】:2011-03-25 08:54:30 【问题描述】:

一个数据库中有太多的表。我怎样才能只显示具有某些模式的表格?或者有没有办法可以在 shell 命令中像“| more”一样进行分页?

【问题讨论】:

不是mysql,而是oracle,你可以“select * from cat where table_name like '%xxxx'”。 mysql必须存在相同的功能 【参考方案1】:

您不必使用show tables,也可以使用任何过滤器查询information_schema.TABLES

【讨论】:

你能举个例子或链接吗? information_schema.TABLES 位于何处? Information_schema 是一个 MySQL 系统数据库。详情可以查看dev.mysql.com/doc/refman/5.0/en/information-schema.html SELECT * from information_schema.TABLES WHERE TABLE_NAME LIKE 'oc_%';【参考方案2】:
show tables like 'pattern';

【讨论】:

我还发现show tables like '%pattern%'; 也可以:) @michaelmcgurk,% 是任何 like 语句中的通配符。因此 a'r 是正确的...模式可以是您要搜索的任何内容,包括通配符。 如果我想 SHOW TABLES LIKE 'xxx_%' 但我不希望下划线字符作为通配符...怎么办? SHOW TABLES LIKE 'xx#_%' ESCAPE '#' 对我不起作用...【参考方案3】:

这可以用来一瞥所有的表格

select * from tab;

并识别列名。此后,使用

select * from tab where tname like '%D_';

【讨论】:

这是不正确的。这将查询一个表,而不是显示具有表模式名称的表【参考方案4】: 使用显示类似“模式”的表格 pattern 是使用通配符“%”、“_”的字符串 % 匹配任意数量的字符,甚至是零个字符。 _ 只匹配一个字符。

例如:

show tables like 'test%' 将过滤诸如“test1,testF,test111,testFoo”之类的表

show tables like 'test_' 将过滤诸如“test1,testF”之类的表

【讨论】:

【参考方案5】:

在 Spark SQL 中,您需要使用星号,SHOW tables LIKE '*table_name*

【讨论】:

以上是关于仅在 mysql “show tables” 中显示具有特定模式的表的主要内容,如果未能解决你的问题,请参考以下文章

具有多个 LIKE 值的 SHOW TABLES 语句

oracle中与mysql中的命令 show databases, show tables, desc table类似的命令集

mysql5.5基础 show tables 查看指定数据库中的所有表

clickhouse show tables

id 主键是不是必须在从 inspectdb 针对现有数据库生成的 Django 模型中显式定义?

全新的MySQL 8.0行锁观测方式