具有多个 LIKE 值的 SHOW TABLES 语句

Posted

技术标签:

【中文标题】具有多个 LIKE 值的 SHOW TABLES 语句【英文标题】:SHOW TABLES statement with multiple LIKE values 【发布时间】:2011-08-02 08:24:30 【问题描述】: mysql> SHOW TABLES like 'cms'; +--------------+ | Tables_in_tianyan (cms) | +--------------+ |厘米 | +--------------+ 一组中的 1 行(0.00 秒)

结果

mysql> SHOW TABLES like 'cms' 或 like 'role'; ERROR 1064 (42000):您的 SQL 语法有错误;检查手册...

如何按多个条件过滤?

【问题讨论】:

dev.mysql.com/doc/refman/5.0/en/tables-table.html 【参考方案1】:

您需要使用WHERE 子句。如docs 所示,如果使用"SHOW TABLES LIKE ...",则只能有一个模式,但如果使用"SHOW TABLES WHERE ...",则可以在WHERE 子句中使用表达式。既然要表达式,就需要使用WHERE子句。

SHOW TABLES
FROM `<yourdbname>`
WHERE 
    `Tables_in_<yourdbname>` LIKE '%cms%'
    OR `Tables_in_<yourdbname>` LIKE '%role%';

【讨论】:

您需要在FROM 子句中定义数据库名称 - 此查询将从 MySQL 实例提供的任何数据库中返回表。【参考方案2】:

您可以使用普通的 SQL WHERE 语句来执行此操作。

SHOW TABLES WHERE Tables_in_tianyan LIKE '%cms%'

【讨论】:

我想通过like 'cms' or like 'role'过滤,这里似乎不需要WHERE Tables_in_tianyan【参考方案3】:
show tables from mydb 
where 
  Tables_in_mydb like '%statistics%' 
  or Tables_in_mydb like '%device%';

【讨论】:

【参考方案4】:

您使用以下代码获取表格列表

select TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA = 'database_name' 

希望对你有所帮助。

【讨论】:

以上是关于具有多个 LIKE 值的 SHOW TABLES 语句的主要内容,如果未能解决你的问题,请参考以下文章

具有相同值的 NSManagedObjects 的 CoreData NSSet-Like 行为

Oracle实现like多个值的查询

clickhouse show tables

命令:show status like '%下面变量%';

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

连接类型具有 Show 实例的多个值