1.网上说对没有索引的列,查询单条数据时,使用limit1会提高效率,查询到就会返回。
但是自己试了试5.5版本,扫描行数是一样的。
2.有说in的时候不会使用索引
试了下5.5版本,能用到索引。
班级,名字,成绩 , 求每个班的前三名
select * from table1 a where
not EXISTS(select * from table1 b where a.class = b.class and a.score < b.score
GROUP BY b.class having count(*)>2
)order by class , score desc;
not exists中返回的是false或者true
是外层的表逐条的与exists里面的数据进行对比,判断是否符合