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