Поиск по сайту:

Получить все таблицы из базы данных 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)

Статьи по данной тематике: