步骤1:从表格中获取最大set_id。 set_id不是唯一的。
select max(set_id) from mytable where ver = 6;
# assume returns 3
步骤2:从set_id为max的表中获取结果:
select * from mytable where ver = 6 and set_id = 3;
# from step 1
步骤3:重构/嵌套选择语句
select * from mytable where ver = 6 and set_id =
( select max(set_id) from mytable where ver = 6 );
有没有更清洁的方式编写此语句?
如何将此语句转换为Eloquent / Fluent查询生成器?
最佳答案
我将这样写该语句:
SELECT * from mytable WHERE ver=6 ORDER BY set_id DESC LIMIT 1;
这将转换为:
DB::table('mytable')->where('ver', 6)->orderBy('set_id', 'DESC')->first();
关于mysql - 嵌套选择查询重构并转换为Eloquent/Query Builder,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26508032/