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

时间:2013-12-25 05:11:06

标签: mysql sql select information-schema describe

在MySQL中,语法DESCRIBE可以显示表的结构,但不能嵌入到普通语句中;是否有一些棘手的方法呢?

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

DESCRIBE `table1`

但这不起作用:

SELECT * FROM (DESCRIBE `table1`)

有没有办法启用它?

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

2 个答案:

答案 0 :(得分:18)

您可以使用 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';

答案 1 :(得分:8)

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