2017-08-29 14 views
0

私のサーバーには異なる名前のデータベースが2つありますが、どちらも表はClientsです。情報スキーマクエリを実行すると、両方のデータベースから列が返されるため、必要なときに重複を取得しています。情報スキーマ重複 - 照会するデータベースをSELECTで指定する

例:

SELECT COLUMN_NAME FROM information_schema.COLUMNS 
WHERE table_name = 'Clients' 

私はそれは両方のデータベースでClientsテーブルから列を返しているので、そうFirst_Nameは二回まで表示され、重複する列を取得しています。

私の質問は:

それだけで私が欲しい1から列を返すようにSELECTステートメントに照会するデータベース指定する方法がありますか?例:

SELECT COLUMN_NAME FROM information_schema.COLUMNS 
WHERE db_name = 'DB1' AND table_name = 'Clients' 

答えて

1

あなたはTABLE_SCHEMAの列を探しています。ちなみに、これは私がdesc INFORMATION_SCHEMA.COLUMNS;

+--------------------------+---------------------+------+-----+---------+-------+ 
| Field     | Type    | Null | Key | Default | Extra | 
+--------------------------+---------------------+------+-----+---------+-------+ 
| TABLE_CATALOG   | varchar(512)  | NO |  |   |  | 
| TABLE_SCHEMA    | varchar(64)   | NO |  |   |  | 
| TABLE_NAME    | varchar(64)   | NO |  |   |  | 
| COLUMN_NAME    | varchar(64)   | NO |  |   |  | 
| ORDINAL_POSITION   | bigint(21) unsigned | NO |  | 0  |  | 
| COLUMN_DEFAULT   | longtext   | YES |  | NULL |  | 
| IS_NULLABLE    | varchar(3)   | NO |  |   |  | 
| DATA_TYPE    | varchar(64)   | NO |  |   |  | 
| CHARACTER_MAXIMUM_LENGTH | bigint(21) unsigned | YES |  | NULL |  | 
| CHARACTER_OCTET_LENGTH | bigint(21) unsigned | YES |  | NULL |  | 
| NUMERIC_PRECISION  | bigint(21) unsigned | YES |  | NULL |  | 
| NUMERIC_SCALE   | bigint(21) unsigned | YES |  | NULL |  | 
| DATETIME_PRECISION  | bigint(21) unsigned | YES |  | NULL |  | 
| CHARACTER_SET_NAME  | varchar(32)   | YES |  | NULL |  | 
| COLLATION_NAME   | varchar(32)   | YES |  | NULL |  | 
| COLUMN_TYPE    | longtext   | NO |  | NULL |  | 
| COLUMN_KEY    | varchar(3)   | NO |  |   |  | 
| EXTRA     | varchar(30)   | NO |  |   |  | 
| PRIVILEGES    | varchar(80)   | NO |  |   |  | 
| COLUMN_COMMENT   | varchar(1024)  | NO |  |   |  | 
| GENERATION_EXPRESSION | longtext   | NO |  | NULL |  | 
+--------------------------+---------------------+------+-----+---------+-------+ 
を行うときに私が得るものであるのと同様に

SELECT COLUMN_NAME 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE 
    TABLE_SCHEMA = 'DB1' AND 
    TABLE_NAME = 'Clients' 

関連する問題