20

在 MySQL 中,语法DESCRIBE可以显示表的结构,但不能嵌入到普通语句中;有什么棘手的方法吗?

例如,这显示了table1结构,以表的形式返回(但 SQL 语句不这么认为)

DESCRIBE `table1`

但这不起作用:

SELECT * FROM (DESCRIBE `table1`)

有没有办法启用它?

我想加入由DESCRIBE语法创建的“表”,我该怎么做?

4

2 回答 2

23

您可以使用INFORMATION_SCHEMA的COLUMNS表来获得预期结果,作为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';
于 2013-12-25T05:42:01.063 回答
11

的输出DESCRIBE看起来像一个表,但DESCRIBE实际上不是一个查询,因此不能被视为例如 SELECT 语句中的子查询。

于 2013-12-25T05:25:03.310 回答