Laravel 雄辩的极限查询
Posted
技术标签:
【中文标题】Laravel 雄辩的极限查询【英文标题】:Laravel eloquent limit query 【发布时间】:2020-03-24 07:00:25 【问题描述】:我有 3 个表 TAble、TableB 和 TableC。 每个都有 100 万个寄存器。
我有 Laravel 雄辩的查询。
$list= TableA::with([
'TableB',
'TableC'
])
->whereIn('field1',['A','B','C'])
->where('created_at','>=','2018-01-01') ->orderBy('fieldC', 'ASC')->orderBy('created_at', 'ASC')
->get()
->take(50) ;
TableA 有 TableB 和 TableC 这样的映射关系。
public function TableB()
return $this->belongsTo('TableB', 'fk_id', 'id');
public function TableC()
return $this->hasMany('TableC');
如何执行此查询限制“TableB”和“TableC”中的寄存器数量。 如果我使用 take() 它只会限制最终结果。
【问题讨论】:
limit() 将是一个“拍摄”,但由数据库完成 【参考方案1】:你想做什么? 如果要分块处理数据,请使用
->chunk(50, function ($data) use ($variable)
//process
);
如果您想在带有页面的表中显示数据,请使用分页。
【讨论】:
以上是关于Laravel 雄辩的极限查询的主要内容,如果未能解决你的问题,请参考以下文章