美文网首页MySql学习笔记
MySQL学习:排序查询

MySQL学习:排序查询

作者: Alui | 来源:发表于2024-05-13 17:49 被阅读0次

    基本语句

    • asc 代表的是升序,desc 代表的是降序,不写默认是升序
    • order by 子句可以支持字段、别名、表达式、函数、多个字段
    • order by 子句在查询语句的最后面
    SELECT 查询字段 FROM 表名 WHERE  筛选条件 ORDER BY 排序的字段 DESC
    

    示例

    • 以下是示例表与示例数据
    -- ----------------------------
    -- Table structure for `tb_student`
    -- ----------------------------
    
    CREATE TABLE `tb_student` (
      `stuNo` bigint(11) NOT NULL AUTO_INCREMENT COMMENT '学号',
      `name` varchar(50) NOT NULL COMMENT '姓名',
      `password` varchar(200) NOT NULL COMMENT '密码',
      `idCard` varchar(18) DEFAULT NULL COMMENT '身份证',
      `sex` char(2) DEFAULT NULL COMMENT '性别',
      `education` varchar(8) DEFAULT NULL COMMENT '学历  0:专科 1:本科 2:硕士 3:博士',
      `schoolId` int(100) DEFAULT NULL COMMENT '毕业学校',
      `professional` varchar(100) DEFAULT NULL COMMENT '专业',
      `acceptanceDate` date DEFAULT NULL COMMENT '入学日期',
      `birthday` date DEFAULT NULL COMMENT '出生日期',
      `status` varchar(20) DEFAULT NULL COMMENT '状态',
      `tel` varchar(50) DEFAULT NULL COMMENT '联系电话号码',
      `secondTel` varchar(50) DEFAULT NULL COMMENT '第二联系电话号码',
      `qq` varchar(20) DEFAULT NULL COMMENT 'QQ',
      `email` varchar(100) DEFAULT NULL COMMENT '邮箱',
      `address` varchar(200) DEFAULT NULL COMMENT '地址',
      `classId` int(11) DEFAULT NULL COMMENT '班级编号',
      `isAdmin` int(11) DEFAULT '0' COMMENT '是否是管理员 0:表示学生  1:管理员 0:学生',
      `photoPath` varchar(200) DEFAULT NULL COMMENT '头像文件名',
      PRIMARY KEY (`stuNo`)
    ) ENGINE=InnoDB AUTO_INCREMENT=910513201430 DEFAULT CHARSET=utf8 COMMENT='学生表';
    
    -- ----------------------------
    -- Records of tb_student
    -- ----------------------------
    
    INSERT INTO `tb_student` VALUES ('910513201419', '邹智', '123456', '430181198612113330', '男', '1', '1', '数学', '2013-09-05', '1994-08-16', '在读', '15211141999', null, null, null, null, '1', '0', null);
    INSERT INTO `tb_student` VALUES ('910513201420', '王小艺', '123456', '430181198612113331', '女', '3', '1', '数学', '2020-09-05', '2020-06-17', '在读 ', '15111141991', null, null, null, null, '1', '0', null);
    INSERT INTO `tb_student` VALUES ('910513201421', '买买提', '123456', '430181198612113332', '男', '3', '2', '计算机', '2020-09-05', '2020-02-11', '在读 ', '15111141992', null, null, null, null, '2', '0', null);
    INSERT INTO `tb_student` VALUES ('910513201422', '万科', '123456', '430181198612113333', '男', '3', '2', '软件', '2020-09-05', '2019-08-12', '在读 ', '15111131999', null, null, null, null, '1', '0', null);
    INSERT INTO `tb_student` VALUES ('910513201423', '褒科一', '123456', '430181198612113334', '男', '3', '3', '设计', '2020-09-05', '2021-08-22', '在读 ', '15111141999', null, null, null, null, '2', '0', null);
    INSERT INTO `tb_student` VALUES ('910513201424', '张柏浩', '123456', '430181198612113335', '男', '3', '3', '影视', '2020-09-05', '2020-02-21', '在读 ', '15111151999', null, null, null, null, '1', '0', null);
    INSERT INTO `tb_student` VALUES ('910513201425', '李成刚', '123456', '430181198612113336', '男', '3', '2', '影视', '2020-09-05', '2020-12-26', '在读 ', '15111161999', null, null, null, null, '3', '0', null);
    INSERT INTO `tb_student` VALUES ('910513201426', '左冷禅', '123456', '430181198612113337', '男', '3', '4', '设计', '2020-09-05', '2020-03-16', '在读 ', '15111171999', null, null, null, null, '4', '0', null);
    INSERT INTO `tb_student` VALUES ('910513201427', '令狐冲', '123456', '430181198612113338', '男', '3', '5', '软件开发', '2020-09-05', '2020-08-16', '在读 ', '15181141999', null, null, null, null, '1', '0', null);
    INSERT INTO `tb_student` VALUES ('910513201428', '赵灵儿', '123456', '430181198612113339', '女', '3', '6', '软件', '2020-09-05', '2021-08-25', '在读 ', '15111191999', null, null, null, null, '5', '0', null);
    INSERT INTO `tb_student` VALUES ('910513201429', '刘国梁', '123456', '430181198612113310', '男', '3', '2', '化工', '2020-09-05', '2020-07-06', '在读 ', '15111101999', null, null, null, null, '1', '0', null);
    
    
    • 案例一:按学生出生日期降序排序
    SELECT stuNo as '学号',`name` as '姓名',birthday as '出生日期',`status` as '在校状态' FROM tb_student WHERE isAdmin = '0' ORDER BY birthday DESC
    
    • 输出结果


      输出结果
    • 案例二:按名字长度降序,再按学号升序

    SELECT `name` as '姓名', stuNo as '入学日期' FROM tb_student order by length(`name`) DESC, stuNo ASC;
    
    • 输出结果


      输出结果

    相关文章

      网友评论

        本文标题:MySQL学习:排序查询

        本文链接:https://www.haomeiwen.com/subject/juvpfjtx.html