MySQL查询top N记录】的更多相关文章

下面以查询每门课程分数最高的学生以及成绩为例,演示如何查询 top N记录.下图是测试数据,表结构和相关 insert 脚本见<常用SQL之日期格式化和查询重复数据>. 使用自连接[推荐] select a.name,a.course,a.score from test1 a, (select course,max(score) score from test1 group by course) b WHERE a.course=b.course and a.score=b.score; 执行…
如果ID是主键或者有索引,可以直接查找: 方法一: 查询上一条记录的SQL语句(如果有其他的查询条件记得加上other_conditions以免出现不必要的错误): select * from table_a where id = (select id from table_a where id < {$id} [and other_conditions] order by id desc limit 1) [and other_conditions]; 查询下一条记录的SQL语句(如果有其他的…
最近在网上找了下mysql查询随机的几个sql,我把最终的记录下来. SELECT * FROM uchome_mtag AS a JOIN (SELECT MAX(tagid) AS id FROM uchome_mtag) AS b ON (a.tagid>=FLOOR(b.id*RAND())) LIMIT 50 我试验后发现一个问题,当你的表里的总数和想要得到的条数很接近时,可能会不理想,有可能你有10条,你想查出随机的8条时,却只给出了5条的结果. 应该是那个大于等于造成的吧. 还有p…
使用mysql数据库,执行查询的时候,有时候就不存在记录,但是正好在不存在记录的时候又需要给赋予相应的查询结果字段,代码实现如下: select IFNULL(('), '1970-01-01 00:00:00') as beginTime, now() as endTime 上面SQL执行结果如下图所示: 下面SQL执行结果如下图所示: '…
我们都会使用distinct去除重复值,今天调试一个问题,业务需要查询出重复的数据,实现如下: 查询帖子的被哪些用户收藏,其中user_id,post_id可以唯一确定一条记录: 先使用post_id, user_id分组,之后统计count值,最后通过having过滤出count大于1的记录 select user_id, post_id, count(*) cnt from g_favorite group by post_id, user_id having cnt > 1 order b…
Q:有一个学生成绩表,表名 stu(学生表),字段有:id(主键),name(学生姓名),subject(学科),score(分数) 1.查询该表中,所有科目都及格的学生 ; 说明:都及格的话,就是最低分是60以上 2.查询该表中,每门科目的前两名 select a.* from ( , )) as num,@subject := subject,@score := score from stu order by subject,score desc ) as a ; 说明:使用存储过程处理,不…
MySQL查询的方法很多,下面为您介绍的MySQL查询语句用于实现查询重复出现次数最多的记录,对于学习MySQL查询有很好的帮助作用. 在有些应用里面,我们需要查询重复次数最多的一些记录,虽然这是一个很简单的查询语句,但是对许多初学者来说,仍然有些难度,特发此文章备查. SELECT keyword, count( * ) AS count FROM article_keyword GROUP BY keyword ORDER BY count DESC LIMIT 20 此段查询语句返回 ar…
mysql查询在一张表不在另外一张表的记录   问题:    查询一个表(tb1)的字段记录不在另一个表(tb2)中      条件:tb1的字段key的值不在tbl2表中      ----------------------     最原始的写法:      select   A.*   from   tbl1 A where   A.key   not   in   (select   key   from   tbl2)          如果tbl2表中数据量很大,比如数据上百万条,每…
mysql 查询每个分组前N条记录 假设存在表movie,  有字段 id, part(地区), mcount(观看次数) 现查询每个地区观看次数最多的3部movie, 则表 ###id虽未存在group列表 但不报错,原因未知… select a.part,a.id, a.mcount from movie a, movie b #下面的where子句产生迪卡尔积并进行筛选, 最大记录与自己产生一条记录(以自身数据为key), 第二位的 将与最大的数据及自身产生两条数据 ……以次类推where…
MySQL查询数据表中数据记录(包括多表查询) 在MySQL中创建数据库的目的是为了使用其中的数据. 使用select查询语句可以从数据库中把数据查询出来. select语句的语法格式如下: select selection_list // 要查询的内容,选择哪些列 from table_list // 从什么表中查询,从何处选择行 where primary_constraint // 查询时需要满足的条件,行必须满足的条件 group by grouping_columns // 如何对结果…