MySQL按字母顺序获取表列名

25

有没有可能查询MySQL数据库以按字母顺序获取表的列名?我知道

SHOW COLUMNS `table_name`;
或者
DESCRIBE `table_name`;

使用这个查询可以列出表中的列(以及其他信息),但是是否可以修改查询以按字母顺序排序列。添加ORDER BY 'Field'没有起作用,它会产生语法错误。

3个回答

33

工作得很好,会再次使用。但是您能告诉我为什么需要c.table_schema条件吗?因为似乎没有它也可以正常工作。 - John Scipione
@John Scipione:在SQL中,“--”是注释符号;table_schema从查询中被注释掉了。删除双破折号以便在语句中进行评估。 - OMG Ponies
运行得非常好!我还使用了分组列名。 - cbloss793

4

在使用 group by 列名 前,每个字段都列出了两次。

 select c.COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS c 
 where c.TABLE_NAME = `'tbl_name'` 
 group by c.column_name 
 order by c.column_name

3

如果你需要更多细节,下面的查询非常方便:

   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_NAME   = 'my table' and
   TABLE_SCHEMA = 'my database'
   add ordering
   order by Type;  -- 

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