【问题标题】:SHOW TABLES statement with multiple LIKE values具有多个 LIKE 值的 SHOW TABLES 语句
【发布时间】: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 语法有错误;检查手册...

如何按多个条件过滤?

【问题讨论】:

标签: mysql sql mysql-error-1064


【解决方案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' 
    

    希望对你有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-18
      • 2013-05-29
      • 1970-01-01
      相关资源
      最近更新 更多