DESCRIBE语法可以嵌入SELECT语句中吗?

25
在MySQL中,语法DESCRIBE可以显示表的结构,但它不能嵌入到普通语句中; 是否有一些巧妙的方法来实现呢?
例如,下面的代码显示了table1的结构,返回为一个表格(但是SQL语句并不这样认为):
DESCRIBE `table1`

但是这并不起作用:

SELECT * FROM (DESCRIBE `table1`)

有没有办法启用它?

我想要加入由DESCRIBE语法创建的"table",我该怎么做?


你为什么想要这个? - Just code
如果您感兴趣,我在这个答案中编写了一个“描述所有表”的程序。 - Drew
2个回答

27

您可以使用INFORMATION_SCHEMACOLUMNS表作为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';

13
DESCRIBE 的输出看起来像表格,但是 DESCRIBE 实际上不是一个查询语句,因此不能像在 SELECT 语句中使用子查询那样处理它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接