MySQL SHOW COLUMNS的返回顺序

ric*_*ich 11 mysql sql sql-order-by

我需要在特定的表中找到列,这没有问题:

SHOW COLUMNS FROM tablename LIKE '%ColumnPrefix%';
Run Code Online (Sandbox Code Playgroud)

但是我需要知道它们将被返回的顺序,最好选择按字母顺序排序结果.我没有运气使用ORDER BY.

有任何想法吗?

Mar*_*ers 15

您可以查询表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
Run Code Online (Sandbox Code Playgroud)


Mic*_*nte 6

由于我遇到了完全相同的问题,我将完成Mark的回答.以下是"从表中显示列"查询的确切长版本:

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';
Run Code Online (Sandbox Code Playgroud)

使用此查询,您可以通过添加ORDER BY来按顺序排序结果.