我正在使用:
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')来获取给定的表的完整列表数据库?
答案 0 :(得分:0)
感谢您的建议。
基于这些,我得到了答案,即:
SELECT TABLE_NAME AS 'table' FROM information_schema.tables where TABLE_name like '%'
这只是在名为table。
的列中返回表名谢谢大家