MySQL:获取某个数据库中表的所有列

时间:2011-05-02 12:43:54

标签: mysql information-schema

我有几个具有相同名称的表的数据库。

我的意思是,我有以下数据库 mydb1mydb2

并且每个mydb都有一个名为myTable的表。但是这些表有不同的列:

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中获取列名?

提示:我只想让列名不是类型,nulls oder键。因此请求show columns from mydb1.myTable不是我正在寻找的。

1 个答案:

答案 0 :(得分:1)

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

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