Поиск базы данных, если имя столбца/имя поля существует в таблице в mySQL

Есть ли способ поиска в базе данных, если имя столбца/имя поля существует в таблице в mysql?

Ответы

Ответ 1

используйте базу данных INFORMATION_SCHEMA и ее таблицы.

например:

    SELECT *
FROM   information_schema.columns
WHERE  table_schema = 'MY_DATABASE'
       AND column_name IN ( 'MY_COLUMN_NAME' );  

Ответ 2

SHOW COLUMNS FROM tablename LIKE 'columnname'

получайте удовольствие!: -)

UPDATE:

Как указано в комментариях, это ищет только одну таблицу, а не всю базу данных (каждая таблица). В этом случае обратитесь к ответу DhruvPathak.

Ответ 3

Если вы хотите выполнить поиск во всей базе данных, попробуйте

SELECT * 
FROM information_schema.COLUMNS 
WHERE 
    TABLE_SCHEMA = 'db_name' 
AND COLUMN_NAME = 'column_name'

И если вы хотите выполнить поиск в конкретной таблице, попробуйте

SELECT * 
FROM information_schema.COLUMNS 
WHERE 
    TABLE_SCHEMA = 'db_name' 
AND TABLE_NAME = 'table_name' 
AND COLUMN_NAME = 'column_name'

Ответ 4

Если вы хотите, чтобы поиск двух или более столбцов, используйте следующие ниже.

 SELECT DISTINCT TABLE_NAME 
        FROM INFORMATION_SCHEMA.COLUMNS
        WHERE COLUMN_NAME IN ('columnA','ColumnB')
            AND TABLE_SCHEMA='YourDatabase';