2011-05-02 152 views
-1

我有几个数据库具有相同名称的表。MySQL:获取某个数据库中的表中的所有列

我的意思是,我得到了以下数据库 mydb1,​​等

每个MYDB有一个表叫myTable。但是,这些表有diffenet列:

myTable in mydb1 
id, name, age 

myTable in mydb2 
id, name, street, size 

现在,如果我只有一个数据库mydb1那么我也只有一个表MyTable。如果我想知道所有在该表中我会做如下的sql请求

use information_schema; 
select column_name from columns where table_name = 'myTable'; 

在这工作正常的话列,我得到我正在寻找的列。

但是,在我的情况下,我有不同的数据库中称为MyTable的几个表。而同样的SQL请求,产量:

id, name, age, id, name, street, size 

但我只是希望有mydb1.myTable列。

我怎样才能从只有一个myTable只有列名?

提示:我只是想让列名不是类型,空值或者奥德键。因此请求show columns from mydb1.myTable不是我要找的。

+0

对不起,我不明白。你可以在我的帖子中看到我尝试过的。 – toom 2011-05-02 12:50:56

回答

1

columns表中的TABLE_SCHEMA列包含数据库名称,所以你可以做这样的:

select column_name from columns where table_name = 'myTable' AND table_schema = 'mydb1'; 
+0

感谢您的回答。我个人认为列名table_schema对包含数据库名称的列没有多大意义。 – toom 2011-05-02 12:59:51

+0

我完全同意。 – Kaivosukeltaja 2011-05-02 13:03:11

相关问题