根据一对多关系的值对集合进行排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了根据一对多关系的值对集合进行排序相关的知识,希望对你有一定的参考价值。

我正在构建一个过滤功能(已经可以使用)。现在我只想添加一个订单功能:按“艺术家名称”,“艺术品标题”排序,...

可能的订单值不是此表中的“字段”。我找不到启动这个“orderBy”查询的方法。我正在寻找的是这样的:

$artworks = $artworks->orderBy(function($q) use($request){
    $q->where('title', 'LIKE', '%artist_name%');
});

但显然这不起作用。有没有办法做到这一点?例如:我希望能够对具有title“artist_name”的艺术品进行排序,这些艺术品按照这些记录的value排序

我有两张桌子:ArtworksArtwork_data(一对多关系)。

这是我的Artwork_data表:

Artwork_data table

答案

您可以将orderByRaw与条件子句一起使用

->orderByRaw('case when title like %artist_name% then value else somecolumn end asc')

以上是关于根据一对多关系的值对集合进行排序的主要内容,如果未能解决你的问题,请参考以下文章

根据一对多关系中的属性对 NSFetchRequest 进行排序?

核心数据以一对多关系排序

如何使用优先队列根据键值对的值进行排序

如何根据相关对象集合的属性对 Core Data 结果进行排序?

核心数据 NSFetchRequest 按类别排序方法返回值

Laravel Nova 排序一对多显示重复