Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL에서 두 개의 특정 열을 포함하는 모든 테이블을 찾는 방법은 무엇입니까?

<시간/>

두 개의 특정 열 이름을 찾으려면 information_schema.columns를 사용하십시오. 여기에서 columnA 대신 Id를 사용하고 columnB 대신 Name을 사용하고 있습니다 -

mysql> select table_name as TableNameFromWebDatabase
   -> from information_schema.columns
   -> where column_name IN ('Id', 'Name')
   -> group by table_name
   -> having count(*) = 3;

그러면 다음과 같은 출력이 생성됩니다. 다음은 Id 및 Name 열이 있는 테이블입니다 -

+--------------------------+
| TableNameFromWebDatabase |
+--------------------------+
| student                  |
| distinctdemo             |
| secondtable              |
| groupconcatenatedemo     |
| indemo                   |
| ifnulldemo               |
| demotable211             |
| demotable212             |
| demotable223             |
| demotable233             |
| demotable251             |
| demotable255             |
+--------------------------+
12 rows in set (0.25 sec)

이를 증명하기 위해 테이블 ​​중 하나에 대한 설명을 확인해 보겠습니다. 다음은 쿼리입니다 -

mysql> desc demotable233;

그러면 다음과 같은 출력이 생성됩니다. 여기에서 Int 및 Name 열이 있는 것을 볼 수 있습니다.

+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
|    Id | int(11)     | NO   | PRI | NULL    | auto_increment |
| Name  | varchar(20) | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)