ORDER BY
语句用于根据指定的列对结果集进行排序,语句默认(asc)按照升序对记录进行排序。
如果您希望按照降序对记录进行排序,可以使用 desc 关键字;
如果您希望按照降序对记录进行排序,可以使用 desc 关键字;
ORDER BY写在WHERE之后。
一个学生信息表结构如下:
id name age teacher class ranking school
1 sunyan 22 a 1 3 x
2 liukan 21 a 3 2 x
3 zhangkai 19 b 1 1 x
4 liuyongting 20 b 1 4 y
5 zhanbin 24 b 3 5 y
6 wangxiao 22 a 3 6 y
2 liukan 21 a 3 2 x
3 zhangkai 19 b 1 1 x
4 liuyongting 20 b 1 4 y
5 zhanbin 24 b 3 5 y
6 wangxiao 22 a 3 6 y
sql语句(拿去直接用)
-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`id` int(64) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`age` int(64) DEFAULT NULL,
`teacher` varchar(255) DEFAULT NULL,
`class` varchar(255) DEFAULT NULL,
`ranking` varchar(255) DEFAULT NULL,
`school` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`id` int(64) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`age` int(64) DEFAULT NULL,
`teacher` varchar(255) DEFAULT NULL,
`class` varchar(255) DEFAULT NULL,
`ranking` varchar(255) DEFAULT NULL,
`school` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES ('1', 'sunyan', '22', 'a', '1', '3', 'x');
INSERT INTO `student` VALUES ('2', 'liukan', '21', 'a', '3', '2', 'x');
INSERT INTO `student` VALUES ('3', 'zhangkai', '19', 'b', '1', '1', 'x');
INSERT INTO `student` VALUES ('4', 'liuyongting', '20', 'b', '1', '4', 'y');
INSERT INTO `student` VALUES ('5', 'zhanbin', '24', 'b', '3', '5', 'y');
INSERT INTO `student` VALUES ('6', 'wangxiao', '22', 'a', '3', '6', 'y');
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES ('1', 'sunyan', '22', 'a', '1', '3', 'x');
INSERT INTO `student` VALUES ('2', 'liukan', '21', 'a', '3', '2', 'x');
INSERT INTO `student` VALUES ('3', 'zhangkai', '19', 'b', '1', '1', 'x');
INSERT INTO `student` VALUES ('4', 'liuyongting', '20', 'b', '1', '4', 'y');
INSERT INTO `student` VALUES ('5', 'zhanbin', '24', 'b', '3', '5', 'y');
INSERT INTO `student` VALUES ('6', 'wangxiao', '22', 'a', '3', '6', 'y');
应用
按年龄从大到小列出学生的名字,年龄,班级
SELECT name,age,class FROM student
ORDER BY(age) DESC;
查询结果为:
name age class
zhanbin
24
3
sunyan 22 1
wangxiao 22 3
liukan 21 3
liuyongting 20 1
zhangkai 19 1
多个列进行排序
按年龄从大到小,班级从小到大顺序查询班学生姓名,年龄,班级
SELECT name,age,class FROM student
ORDER BY age DESC,class ASC;
name age class
zhanbin 24 3
sunyan 22 1wangxiao 22 3
liukan 21 3
liuyongting 20 1
zhangkai 19 1