Получить все таблицы из базы данных MySQL, имеющие определенный столбец, скажем, xyz?
Допустим, у нас есть база данных «Интернет», и нам нужно получить все таблицы, имеющие определенный столбец «StudentFirstName».
Для этого ниже приведен запрос:
mysql> select myColumnName.table_name from
information_schema.columns myColumnName
where myColumnName.column_name = 'StudentFirstName' and table_schema='web';
Это даст следующий результат:
+---------------+
| TABLE_NAME |
+---------------+
| demotable109 |
| demotable297 |
| demotable335 |
| demotable395 |
| demotable418 |
| demotable425 |
| demotable436 |
+---------------+
7 rows in set (0.14 sec)
Поэтому в приведенных выше таблицах одно из имен столбцов имеет значение «StudentFirstName».
Давайте проверим описание любой таблицы и найдем имя столбца «StudentFirstName»:
mysql> desc demotable297;
Это приведет к следующему выводу, отображающему одно из имен столбцов как «StudentFirstName»:
+------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------+--------------+------+-----+---------+-------+
| StudentId | int(11) | YES | | NULL | |
| StudentFirstName | varchar(100) | YES | | NULL | |
| StudentLastName | varchar(100) | YES | | NULL | |
+------------------+--------------+------+-----+---------+-------+
3 rows in set (0.01 sec)