具有多个 LIKE 值的 SHOW TABLES 语句

问题描述 投票:0回答:5
mysql> 显示类似“cms”的表;
+------------------------------------+
|天眼表 (cms) |
+------------------------------------+
|管理系统 |
+------------------------------------+
一组 1 行(0.00 秒)

结果

mysql> 显示类似“cms”或“角色”的表;
ERROR 1064 (42000):您的 SQL 语法有错误;检查手册...

如何按多个条件过滤?

mysql sql mysql-error-1064
5个回答
73
投票

您需要使用

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%';

17
投票

您可以使用普通的 SQL

WHERE
语句来完成此操作。

SHOW TABLES WHERE Tables_in_tianyan LIKE '%cms%'

7
投票
show tables from mydb 
where 
  Tables_in_mydb like '%statistics%' 
  or Tables_in_mydb like '%device%';

3
投票

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

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

1
投票

这会有帮助

SELECT 
TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME
 LIKE 'cms%';
© www.soinside.com 2019 - 2024. All rights reserved.