有没有可能查询MySQL数据库以按字母顺序获取表的列名?我知道
SHOW COLUMNS `table_name`;
或者DESCRIBE `table_name`;
使用这个查询可以列出表中的列(以及其他信息),但是是否可以修改查询以按字母顺序排序列。添加ORDER BY 'Field'没有起作用,它会产生语法错误。
有没有可能查询MySQL数据库以按字母顺序获取表的列名?我知道
SHOW COLUMNS `table_name`;
或者DESCRIBE `table_name`;
使用这个查询可以列出表中的列(以及其他信息),但是是否可以修改查询以按字母顺序排序列。添加ORDER BY 'Field'没有起作用,它会产生语法错误。
在MySQL中,ANSI INFORMATION_SCHEMA表(此处是INFORMATION_SCHEMA.COLUMNS)提供更大的灵活性:
SELECT c.column_name
FROM INFORMATION_SCHEMA.COLUMNS c
WHERE c.table_name = 'tbl_name'
-- AND c.table_schema = 'db_name'
ORDER BY c.column_name
在使用 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
如果你需要更多细节,下面的查询非常方便:
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; --