我想从2个表中获取列名。MySQL - 从多个表显示列
我试过了这样一个查询:(SHOW COLUMNS FROM users) UNION (SHOW COLUMNS FROM posts)
但这不起作用&返回语法错误。我使用DESCRIBE
尝试了相同的查询,但那也不起作用。 如何在单个查询中获取多个表中的所有列名?这可能吗?
我想从2个表中获取列名。MySQL - 从多个表显示列
我试过了这样一个查询:(SHOW COLUMNS FROM users) UNION (SHOW COLUMNS FROM posts)
但这不起作用&返回语法错误。我使用DESCRIBE
尝试了相同的查询,但那也不起作用。 如何在单个查询中获取多个表中的所有列名?这可能吗?
从文档5.0版(http://dev.mysql.com/doc/refman/5.0/en/show-columns.html)
"SHOW COLUMNS displays information about the columns in a given table"
所以你不能真正使用它在多个表。但是,如果你有information_schema
数据库,那么你可以使用它像如下:
select column_name
from `information_schema`.`columns`
where `table_schema` = 'mydb' and `table_name` in ('users', 'posts');
在这里,你将不得不更换mydb
用你的数据库名称,或者只是使用DATABASE()
。
是使用information_Schema视图。
SELECT * FROM information_schema.columns
WHERE Table_Name=? OR Table_name=?;
使用它们,因为它们是查询数据库元数据的标准方法。
如果你也想获得表列的名称是从选择table_name
太
SELECT column_name, table_name
FROM `information_schema`.`columns`
WHERE `table_schema` = DATABASE() AND `table_name` in ('table1', 'table2');
如果它是任何感兴趣的人,我写了一个*描述所有表*在[这个答案] (http://stackoverflow.com/a/38679580) – Drew