您现在的位置是: 首页 > MySQL MySQL
SQL取分组的前几条/指定条数(原生SQL与TP6写法)
冬寂
2022-05-20 15:12:46
【MySQL】
4830人已围观
SQL取分组的前几条/指定条数(原生SQL与TP6写法)
原生SQL
SELECT * FROM `sdsd` `a` WHERE EXISTS ( SELECT count(*) FROM `sdsd` `b` WHERE ( a.type=b.type ) AND ( a.id>b.id ) HAVING count(*)<2 ) ORDER BY `a`.`type` DESC
Thinkphp6写法
Db::name('sdsd')->alias('a')
->whereExists(function ($query){
$query->table('sdsd')->alias('b')
->fieldRaw('count(*)')
->whereRaw('a.type=b.type')
->whereRaw('a.id>b.id')
->having('count(*)<2');
})
->order('a.type','desc')
->select()->toArray();
数据表

查询结果

查询时间

相关文章
随机图文
-
通往财富自由之路(一)- 什么是财富自由
财富自由 -
MySQL 隐式类型转换导致的字符串比较异常
MySQL 隐式类型转换导致的字符串比较异常 -
MySQL 随机排序 ORDER BY RAND() 性能优化
MySQL 随机排序 ORDER BY RAND() 性能优化 -
当我读了4000期《时代》周刊以后(The TIME Project)
在2013年到2017年期间,我阅读了从1923年到2000年的每一期《时代》杂志,总共将近4000期,同时也相当于是研读了77年有价值的历史。一开始,我只是把这项阅读工程当成一种追踪经济历史的方式,但最后的落脚点却是个人变革。通过一周接一周地阅读一代又一代人出版的《时代》,我能够观察与感知到历史画卷在我面前徐徐展开。这个经历最终改变了我的生活方式。原作者Scott Krisiloff
