如何使用MySQL在所有表中标识存在的列?
要标识列名,请在MySQL中使用INFORMATION_SCHEMA.COLUMNS。这是语法-
select table_name,column_name from INFORMATION_SCHEMA.COLUMNS where table_schema = SCHEMA() andcolumn_name='anyColumnName';
让我们实现上面的查询,以便识别在所有表中都存在的列。在这里,我们发现存在列EmployeeAge-
select table_name,column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema = SCHEMA() AND column_name='EmployeeAge';
这将产生以下输出,显示带有特定列“EmployeeAge”的表-
+---------------+-------------+ | TABLE_NAME | COLUMN_NAME | +---------------+-------------+ | demotable1153 | EmployeeAge | | demotable1297 | EmployeeAge | | demotable1303 | EmployeeAge | | demotable1328 | EmployeeAge | | demotable1378 | EmployeeAge | | demotable1530 | EmployeeAge | | demotable1559 | EmployeeAge | | demotable1586 | EmployeeAge | | demotable1798 | EmployeeAge | | demotable1901 | EmployeeAge | | demotable511 | EmployeeAge | | demotable912 | EmployeeAge | +---------------+-------------+ 12 rows in set (0.00 sec)
为了证明,让我们检查上表的描述-
desc demotable1153;
这将产生以下输出,显示demotable1153中EmployeeAge列的存在-
+--------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------+-------------+------+-----+---------+----------------+ | EmployeeId | int(11) | NO | PRI | NULL | auto_increment | | EmployeeName | varchar(40) | YES | MUL | NULL | | | EmployeeAge | int(11) | YES | | NULL | | +--------------+-------------+------+-----+---------+----------------+ 3 rows in set (0.00 sec)