MySQL - 从多个表中显示列

时间:2013-07-24 23:12:36

标签: php mysql multiple-tables describe

我正在尝试从2个表中获取列名。

我尝试过像(SHOW COLUMNS FROM users) UNION (SHOW COLUMNS FROM posts)这样的查询,但这不起作用&返回语法错误。我使用DESCRIBE尝试了相同的查询,但这也无效。 如何在单个查询中获取多个表中的所有列名?是否可以?

3 个答案:

答案 0 :(得分:6)

来自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()

答案 1 :(得分:4)

是使用information_Schema视图。

SELECT * FROM information_schema.columns
WHERE Table_Name=? OR Table_name=?;

使用它们,因为它们是查询数据库元数据的标准方法。

答案 2 :(得分:1)

如果您还希望获得表格列的名称,请选择private void updateFilesName() { int j; for (int i = 1; i <= filesAmount; i++) { File file1 = new File(getFilesDir().getParent() + "/file_" + i + ".xml"); if (!file1.exists()) { j = i+1; while (!(new File(getFilesDir().getParent() + "/file_" + j + ".xml")).exists()) { j++; } (new File(getFilesDir().getParent() + "/file_" + j + ".xml")).renameTo(file1); } } }

table_name