MySQL SHOW COLUMNS 的返回顺序
Posted
技术标签:
【中文标题】MySQL SHOW COLUMNS 的返回顺序【英文标题】:Return order of MySQL SHOW COLUMNS 【发布时间】:2010-03-30 11:34:20 【问题描述】:我需要查找特定表中的列,这没问题:
SHOW COLUMNS FROM tablename LIKE '%ColumnPrefix%';
但我需要知道它们将按什么顺序返回,最好选择按字母顺序升序排列结果。我没有使用ORDER BY
。
有什么想法吗?
【问题讨论】:
为什么需要像表格结构这样的黑盒中的这种不寻常的东西? 您使用的是什么版本的 mysql?您正在使用什么客户端,例如php?为什么不在客户端对列进行排序? MySQL 4.0.16 有点痛苦,应该玩一下用 PHP 订购它。大脑今天似乎没有运转(!) 有什么原因不能将结果加载到程序中并在那里排序? 【参考方案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
【讨论】:
+1 好点 - INFORMATION_SCHEMA 数据库(自 5.0 起)可能是 MySQL 中最容易被忽视的有用的东西。 我正在运行 4.0.16 版,否则这将是完成这项工作的好方法。【参考方案2】:由于我遇到了完全相同的问题,我将完成 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';
使用此查询,您可以通过添加 ORDER BY 对结果进行排序。
【讨论】:
以上是关于MySQL SHOW COLUMNS 的返回顺序的主要内容,如果未能解决你的问题,请参考以下文章
小白学习MySQL - Generated Columns功能
MySQL 5.7 虚拟列 (virtual columns)
INFORMATION_SCHEMA.COLUMNS 最初按字母顺序排序,几天后按 ORDINAL_POSITION 排序
mysql5.7查看表结构命令show full columns from t_user
Python璇诲彇mysql鏁版嵁锛岃浆涓篋ataFrame鏍煎紡骞舵牴鎹師TABLE涓殑COLUMNS鎸囧畾columns锛宨ndex