Mysql получает имена столбцов таблицы в алфавитном порядке
Можно ли запросить базу данных MySQL, чтобы получить имена столбцов таблицы в алфавитном порядке? Я знаю, что
SHOW COLUMNS `table_name`;
или
DESCRIBE `table_name`;
предоставит мне список столбцов в таблице (вместе с другой информацией), но можно ли изменить запрос, чтобы отсортировать столбцы в алфавитном порядке. Добавление ORDER BY 'Field' не сработало, оно дало синтаксическую ошибку.
Ответы
Ответ 1
Таблицы 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
Ответ 2
Каждое поле было указано дважды, пока я не использовал 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
Ответ 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; --