mysql查询表的列名,顺序不对?

mysql查询表的列名,顺序不对,正常的如横向图,如何让查询出来的列名按建表的列名顺序显示,由于有多个表格需求,单个建视图处理太麻烦。
最新回答
窗外的海风吹过

2024-11-07 00:17:14

information_schema.columns表中有一个ordinal_position字段,表示的是列标识号,其实就是字段编号,你可以看看这些字段标号是不是按照你现在有字段顺序摆列的,如果是,那么用ordinal_position排序就可以了。
如果不是,而是按照你查询information_schema.columns表的顺序编的号,那么可能在建表后有过插入字段(比原来表中没有第四题字段一类的),或者修改字段名称(这个也可能修改字段编号),那么就将
数据备份
重建该表,这样应该就没有问题了,不过可能也需要按照ordinal_position排序。
バ快乐De右岸ヤ

2024-11-07 05:48:21

我也刚遇到这个问题。重建索引的时候重启了(时间太长,以为故障了),然后列名顺序就神经病的和创建的时候不一样了。后来就重装了mysql,重建了数据表,发现还是一个样子。后来发现乱了的列表名是按ascii的顺序排列的,才想起来这次建数据库的时候选了个数据库排序规则,上一次选没选就没印象了。以前是从information_schmema里查询的(估计就是排序规则影响了这个顺序,所以输出的列表不对)。后来发现在命令行界面用DSC table_name的时候显示的列名顺序是正确的,然后就自建了个函数,把这个命令的执行结果取出来加工了下,生成了一个列名list。注:返回的列名是在Field里,不区分大小写的忽略。