mysql 排序后查询语句_mysql 排序后在查询

今天写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(*)总个数

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值