MySQL:从'select tables_names ...'返回所有表

时间:2017-09-13 22:52:55

标签: mysql

我正在使用:

SELECT table_name AS tables FROM information_schema.tables WHERE table_name LIKE 'address_%'

...获取数据库中所有表的列表。我被建议使用这种方法,而不是'SHOW TABLES',见:

mysql: SHOW TABLES - define column name

...因为我可以命名该列(上面的AS子句,SHOW TABLES不可用)。

正如所料,这给了我以下输出:

tables  
address_13e625c01bea04b1d311
address_147e32243c710542fb43
address_3b046272656fa61d7550
address_4f83b2740fc4f038775a
etc.

如果我尝试更改SELECT语句以将所有表(不仅仅是那些以'address_'开头的表)更改为以下任何一个:

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_'(从上面)甚至不存在。< / p>

有没有人知道我应该使用什么'SELECT table_name ...'语句,请记住我想命名列(这就是为什么我不能使用'SHOW TABLES')来获取给定的表的完整列表数据库?

1 个答案:

答案 0 :(得分:0)

感谢您的建议。

基于这些,我得到了答案,即:

SELECT TABLE_NAME AS 'table' FROM information_schema.tables where TABLE_name like '%'

这只是在名为table。

的列中返回表名

谢谢大家