MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

列名を指定すると、MySQLデータベースのどのテーブルにその列が含まれているかを確認するにはどうすればよいですか?


COLUMN_NAMEを使用して、データベース内のどのテーブルに特定の列が含まれているかを検索します。まずテーブルを作成しましょう-

mysql> create table DemoTable
   -> (
   -> CustomerId int,
   -> CustomerName varchar(20),
   -> CustomerCountryName varchar(100)
   -> );
Query OK, 0 rows affected (1.05 sec)

以下は、特定の列「'CustomerCountryName'」がどのテーブルに存在するかを見つけるためのクエリです-

mysql> select *from information_schema.columns WHERE COLUMN_NAME =
'CustomerCountryName';

出力

これにより、次の出力が生成されます-

+---------------+--------------+--------------+---------------------+------------------+----------------+-------------+-----------+--------------------------+------------------------+-------------------+---------------+--------------------+--------------------+-----------------+--------------+------------+-------+---------------------------------+----------------+-----------------------+-------+
| TABLE_CATALOG | TABLE_SCHEMA | TABLE_NAME  | COLUMN_NAME          |ORDINAL_POSITION  | COLUMN_DEFAULT | IS_NULLABLE | DATA_TYPE |CHARACTER_MAXIMUM_LENGTH | CHARACTER_OCTET_LENGTH |NUMERIC_PRECISION | UMERIC_SCALE | DATETIME_PRECISION |CHARACTER_SET_NAME | COLLATION_NAME | COLUMN_TYPE | COLUMN_KEY | EXTRA | PRIVILEGES | COLUMN_COMMENT | GENERATION_EXPRESSION | SRS_ID |
+---------------+--------------+--------------+---------------------+------------------+----------------+-------------+-----------+--------------------------+------------------------+-------------------+---------------+--------------------+--------------------+-----------------+--------------+------------+-------+---------------------------------+----------------+-----------------------+-------+
| def | sample | demotable189 | CustomerCountryName | 4 | NULL |YES | varchar | 100 | 300 | NULL | NULL | NULL | utf8 | utf8_general_ci | varchar(100) | | |select,insert,update,references | | | NULL |
| def | web | DemoTable | CustomerCountryName | 4 | NULL |YES | varchar | 20 | 60 | NULL | NULL |NULL | utf8 | utf8_unicode_ci | varchar(20) | | |select,insert,update,references | | | NULL |
| def | web | DemoTable | CustomerCountryName | 3 | NULL |YES | varchar | 100 | 300 | NULL | NULL |NULL | utf8 | utf8_unicode_ci | varchar(100) | | |select,insert,update,references | | | NULL |
+---------------+--------------+--------------+---------------------+------------------+----------------+-------------+-----------+--------------------------+------------------------+-------------------+---------------+--------------------+--------------------+-----------------+--------------+------------+-------+---------------------------------+----------------+-----------------------+-------+
3 rows in set (0.68 sec)

上記では、「CustomerCountryName」列が3つのテーブルに存在することがわかります。


  1. MySQLで特定の列名を持つテーブルを見つける方法は?

    列名を見つけるには、information_schema.columnsを使用します。以下は構文です- select distinct table_name from information_schema.columns where column_name like '%yourSearchValue%' and table_schema=database(); さまざまなテーブルで列名を見つけるために、上記の構文を実装しましょう。ここでは、特定の列名が「クライアント」という単語を持つテーブル名のみが必要です- mysql> select distinct table_

  2. MySQLで2つの特定の列を含むすべてのテーブルを見つける方法は?

    2つの特定の列名を見つけるには、information_schema.columnsを使用します。ここでは、columnAの代わりにIdを使用し、columnBの代わりにNameを使用しています- mysql> select table_name as TableNameFromWebDatabase    -> from information_schema.columns    -> where column_name IN ('Id', 'Name')    -> grou