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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql查询表的列名,顺序不对?相关的知识,希望对你有一定的参考价值。

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

information_schema.columns表中有一个ordinal_position字段,表示的是列标识号,其实就是字段编号,你可以看看这些字段标号是不是按照你现在有字段顺序摆列的,如果是,那么用ordinal_position排序就可以了。
如果不是,而是按照你查询information_schema.columns表的顺序编的号,那么可能在建表后有过插入字段(比原来表中没有第四题字段一类的),或者修改字段名称(这个也可能修改字段编号),那么就将数据备份重建该表,这样应该就没有问题了,不过可能也需要按照ordinal_position排序。
参考技术A 我也刚遇到这个问题。重建索引的时候重启了(时间太长,以为故障了),然后列名顺序就神经病的和创建的时候不一样了。后来就重装了mysql,重建了数据表,发现还是一个样子。后来发现乱了的列表名是按ascii的顺序排列的,才想起来这次建数据库的时候选了个数据库排序规则,上一次选没选就没印象了。以前是从information_schmema里查询的(估计就是排序规则影响了这个顺序,所以输出的列表不对)。后来发现在命令行界面用DSC table_name的时候显示的列名顺序是正确的,然后就自建了个函数,把这个命令的执行结果取出来加工了下,生成了一个列名list。注:返回的列名是在Field里,不区分大小写的忽略。

MySQL-基本查询条件查询排序查询

 基本查询:

 SELECT * FROM 表名;

 SELECT DISTINCT 列名 FROM 表名

 SELECT 列名1 as 新列名1,列名2 as 新列名2,… FROM 表名

 条件查询:

 SELECT 列名1,列名2,…

FROM 表名

WHERE 查询条件

 

  为了进行模糊匹配查询,MySQL提供了LIKE关键字配合通配符来实现。其中通配符有两个,一个是“%”代表从0个到任意多个字符,另一个是“_”代表某一个字符。另外,可以将LIKE关键字结合逻辑非运算符NOT或!进行查询。

 MySQL中提供了关键字IS NULL的空值查询,用来查询某字段为空值的记录;还可以使用NOT IN NULL查询非空值字段。

 排序查询:

 SELECT字段列表

FROM 表名

WHERE 查询条件

ORDER BY {列名1|列号 [ASC | DESC ]},[{列名2|列号[ASC | DESC ]}],…

 

ASC:表示对排序字段按升序进行排序(默认);

DESC:表示对排序字段按降序进行排序。

 

 

 

 

 

select sno as 学号,sname as 姓名,ssex as 性别,sage as 年龄 from student

select sno,sname,sage from student

select sname,sage from student where sage<20

select sno from sc where score<60

select sname,sage from student where sage>18 and sage<20

select sname,sno,ssex from student

select sno,sname from student where sname like '张__'

select sno,sname from student where not sname like '张%'

select sno,sname from student where sage<20 and ssex='男'

select sno,sname,sage from student where sage in (18,20,21)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 查询年龄分别是18、20、21岁的学生学号、姓名和年龄
  • 查询男的20岁以下的学生学号、姓名
  • 查询所有不姓“张”的学生学号、姓名
  • 查询姓“张”且全名为3个汉字的学生学号、姓名
  • 查询所有学生的姓名、学号和性别
  • 查询所有年龄在18至20岁之间学生姓名和年龄
  • 查询考试成绩不及格学生的学号
  • 查询所有年龄在20岁以下学生的姓名及年龄
  • 查询所有学生的学号、姓名和年龄
  • 查询学生表所有内容,并将字段名称使用中文别名“学号、姓名、性别、年龄”

以上是关于mysql查询表的列名,顺序不对?的主要内容,如果未能解决你的问题,请参考以下文章

mysql 如何 多表连查 按时间到排序

Mysql - 查询之关联查询

MySQL ORDER BY:对查询结果进行排序

Mysql表的简单查询

MySQL基本查询 SELECT的执行顺序(DQL语句)

2016.3.25(mySQL简单的数据查询)