首页 > 数据库技术 > 详细

mysql 排序后在查询

时间:2019-01-29 19:36:27      阅读:202      评论:0      收藏:0      [点我收藏+]

今天写sql 的时候,遇到一个问题,有一个图书表和一个章节表

book{ id,name,cover}   chapter{id,bid,rank,content,title}

我需要随机五本书,并且获取这五本书的最新章节和标题    ,rank代表多少章

我的sql是:

select t.* from
(select b.* ,c.rank,c.title from book b
inner join chapter c on c.bid=b.id
order by c.rank desc)as t group by t.id

导出来的数据永远都是第一章,而不是最后一章,后来在网上查了一下,在mysql 5.7版本一下,

这个sql是没有问题的,但是要是版本超过>=5.7,就有问题,

那么大于5.7的解决方法,我暂时就找到了一种,就是:

select t.* from
(select b.* ,c.rank,c.title from book b
inner join chapter c on c.bid=b.id
order by c.rank desc limit 1000000)as t group by t.id

需要 设置一下查询的个数大小,limit无穷大,这两个sql唯一的不同就在于此

当然这个limit的最大值就是章节表的count(*)总个数

这样运行结果就和预想的一样了,

希望知道其他方法的大神,可以传授一下其他解法,谢谢!

 

mysql 排序后在查询

原文:https://www.cnblogs.com/foreverstudy/p/10335109.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!