我有一个可为空的关系,有时会回退到字符串。因此,在对结果进行排序时,我想将brands.name
和ads.mixed_brand_name
结合起来。
我想要订单的示例:
brands.name
:Audi
mixed_brand_name
:null
brands.name
:null
mixed_brand_name
:BMW blabla
brands.name
:Citroën
mixed_brand_name
:null
这就是我现在正在做的事情,但所有带有品牌的广告都是第一位的(因为brand_id
对那些没有品牌关系的广告无效。
Ad::join('brands', 'brands.id', '=', 'ads.brand_id')
->orderBy('brands.name')
->orderBy('ads.mixed_brand_name');
按 orderByRaw 使用自定义顺序
Ad::leftJoin('brands', 'brands.id', '=', 'ads.brand_id')
->orderByRaw('IFNULL(brands.name, ads.mixed_brand_name)');