MySQL получить имена столбцов таблицы в алфавитном порядке - PullRequest
23 голосов
/ 25 сентября 2010

Можно ли запросить базу данных MySQL, чтобы получить имена столбцов таблицы в алфавитном порядке?Я знаю, что

SHOW COLUMNS `table_name`;

или

DESCRIBE `table_name`;

даст мне список столбцов в таблице (вместе с другой информацией), но можно ли изменить запрос по порядкучтобы отсортировать столбцы в алфавитном порядке.Добавление ORDER BY 'Field' не сработало, оно дало синтаксическую ошибку.

Ответы [ 3 ]

31 голосов
/ 25 сентября 2010

Таблицы ANSI INFORMATION_SCHEMA (в данном случае INFORMATION_SCHEMA.COLUMNS) обеспечивают большую гибкость в MySQL:

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
3 голосов
/ 16 декабря 2015

Каждое поле было указано дважды, пока я не использовал group by column name

 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
2 голосов
/ 10 января 2017

Если вы хотите получить более подробную информацию, запрос ниже очень удобен:

   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;  -- 
...