用SHOW COLUMNS做一些事情?

时间:2016-07-26 09:51:43

标签: mysql sql metadata

可以对SHOW COLUMNS查询的结果做些什么吗?

例如,将结果行添加到某个选择表中吗?

以下不起作用:

SELECT * FROM (SHOW COLUMNS FROM MyTable )

更新

那么,SHOW COLUMNS本身就是一个东西?

2 个答案:

答案 0 :(得分:2)

要在SQL中检索作为 resultset 的列信息,可以使用:

SELECT * 
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA='database-name' AND TABLE_NAME='table-name';

您可以对SHOW语句的结果执行某些操作,但不能使用SQL。 SHOW语句不是ANSI SQL的一部分,它们是MySQL中的扩展。请注意SHOW Syntax文档中的此评论:

  

许多MySQL API(例如PHP)使您能够像处理SELECT中的结果一样处理从SHOW语句返回的结果;有关更多信息,请参见第25章,连接器和API或API文档。

     

此外,您可以使用来自INFORMATION_SCHEMA数据库中的表的查询结果在SQL中工作,您无法轻松地使用SHOW语句的结果。请参见第22章,INFORMATION_SCHEMA表。

SHOW语句更适合数据库管理员快速检索有关数据库结构的元数据。那就是说,“引擎盖下”'我会假设它查询INFORMATION_SCHEMA.COLUMNS,但格式化输出更容易阅读。

答案 1 :(得分:1)

您无法使用SHOW COLUMNS AFAIK处理数据,它会更多地显示有关列的信息。数据类型等。

您可以使用此类语法处理数据。

SELECT * 
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA='YourDatabase' AND TABLE_NAME='table';;