MySQL:从'select tables_names ...'返回所有表
Posted
技术标签:
【中文标题】MySQL:从\'select tables_names ...\'返回所有表【英文标题】:MySQL: Return all tables from 'select tables_names ...'MySQL:从'select tables_names ...'返回所有表 【发布时间】:2017-09-13 22:52:54 【问题描述】:我正在使用:
SELECT table_name AS tables FROM information_schema.tables WHERE table_name LIKE 'address_%'
... 获取数据库中所有表的列表。有人建议我使用这种方法,而不是“显示表格”,请参阅:
mysql: SHOW TABLES - define column name
...因为我可以命名列(上面的 AS 子句,它不适用于 SHOW TABLES)。
正如预期的那样,这给了我以下输出:
tables
address_13e625c01bea04b1d311
address_147e32243c710542fb43
address_3b046272656fa61d7550
address_4f83b2740fc4f038775a
etc.
如果我尝试更改 SELECT 语句以将所有表(不仅仅是以“地址_”开头的表)更改为以下任何一个:
SELECT table_name AS tables FROM information_schema.tables WHERE table_name LIKE '%'
SELECT table_name AS tables FROM information_schema.tables WHERE table_name LIKE ''
SELECT table_name AS tables FROM information_schema.tables
这些都返回:
tables
CHARACTER_SETS
CLIENT_STATISTICS
COLLATIONS
COLLATION_CHARACTER_SET_APPLICABILITY
COLUMNS
COLUMN_PRIVILEGES
etc.
我不知道这些值是什么(从外观上看是数据库属性),但它肯定不是数据库中的表列表('address_'(来自上面)甚至不存在。
有谁知道我应该使用什么'SELECT table_name ...'语句,记住我想命名列(这就是为什么我不能使用'SHOW TABLES')来获取给定表的完整列表数据库?
【问题讨论】:
使用SELECT * FROM information_schema.tables
查看表格包含的内容。然后您可以决定应用哪些过滤器。
我会说SELECT table_name AS tables FROM information_schema
您可能希望将查询限制为仅查看您感兴趣的 table_schema(即您的数据库)。
【参考方案1】:
感谢您的建议。
基于这些,我得到了答案,那就是:
SELECT TABLE_NAME AS 'table' FROM information_schema.tables where TABLE_name like '%'
这只是在名为 table 的列中返回表名。
谢谢大家
【讨论】:
以上是关于MySQL:从'select tables_names ...'返回所有表的主要内容,如果未能解决你的问题,请参考以下文章