Может ли синтаксис DESCRIBE быть встроен в инструкцию SELECT?
В MySQL синтаксис DESCRIBE
может отображать структуру таблицы, но не может быть встроен в обычный оператор; есть ли какой-то сложный способ сделать это?
Например, это показывает структуру table1
, возвращенную в виде таблицы (но SQL-инструкция не считает)
DESCRIBE `table1`
Но это не работает:
SELECT * FROM (DESCRIBE `table1`)
Есть ли способ включить его?
Я хочу присоединиться к "таблице", созданной синтаксисом DESCRIBE
, как я могу это сделать?
Ответы
Ответ 1
Вы можете использовать COLUMNS таблицу INFORMATION_SCHEMA, чтобы получить ожидаемый результат в качестве альтернативного решения DESCRIBE.
Попробуйте следующее:
SELECT COLUMN_NAME AS `Field`, COLUMN_TYPE AS `Type`, IS_NULLABLE AS `NULL`,
COLUMN_KEY AS `Key`, COLUMN_DEFAULT AS `Default`, EXTRA AS `Extra`
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'schemaName' AND TABLE_NAME = 'table1';
Ответ 2
Вывод DESCRIBE
выглядит как таблица, но DESCRIBE
на самом деле не является запросом и поэтому не может рассматриваться как, например, подзапрос в инструкции SELECT.