步骤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/

10-10 10:48