mysql max 与 where 间的执行问题
执行sql:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
CREATE TABLE `grades` (
`id` int (20) NOT NULL AUTO_INCREMENT,
`student_id` int (20) NOT NULL ,
`subject` varchar (20) COLLATE utf8_bin DEFAULT NULL ,
`grades` varchar (20) COLLATE utf8_bin DEFAULT NULL ,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE =utf8_bin;
insert into `grades`(`id`,`student_id`,`subject`,`grades`) values (1,1, '语文' , '80' ),(2,1, '数学' , '89' ),(3,2, '语文' , '90' );
CREATE TABLE `student` (
`id` int (20) NOT NULL AUTO_INCREMENT,
` name ` varchar (20) COLLATE utf8_bin DEFAULT NULL ,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE =utf8_bin;
insert into `student`(`id`,` name `) values (1, 'xiaoming' ),(2, 'xiaohong' ),(3, 'xiaobai' );
|
执行结果:
执行结果1:
执行结果2:
执行结果3:
执行结果4:
执行结果5:
由此可见:
1.max是在where条件之前执行的,
2.而group by 又是在max之前执行的
3.当where 与 group by 同时出现 优先执行where条件
总结
以上所述是小编给大家介绍的mysql max 与 where 间的执行问题小结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:https://www.cnblogs.com/cb-log/archive/2018/01/30/mysql_max_where.html