Обратный порядок MySQL SHOW COLUMNS

Мне нужно найти столбцы в конкретной таблице, что не проблема:

SHOW COLUMNS FROM tablename LIKE '%ColumnPrefix%';

Но мне нужно знать, в каком порядке они будут возвращены, желательно, выбрав порядок для упорядочивания результатов по алфавиту. Мне не повезло с использованием ORDER BY.

Любые идеи?

Ответ 1

Вы можете запросить таблицу INFORMATION_SCHEMA.COLUMNS, чтобы получить информацию, которую предоставляет SHOW COLUMNS, плюс она позволяет использовать ORDER BY или любой другой синтаксис SQL, который вы, возможно, захотите использовать:

SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'tablename'
  AND column_name LIKE 'ColumnPrefix%'
ORDER BY column_name

Ответ 2

Поскольку у меня была та же самая проблема, я завершу ответ Марка. Вот точная длинная версия запроса "show columns from table":

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`='mytable';

С помощью этого запроса вы можете заказать результат, но хотите, добавив ORDER BY.