首页 > 解决方案 > 按两个 sql-laravel 字段排序

问题描述

我在 laravel 中有一个查询,它返回一些记录。在这些记录之间,它们返回一些名称和日期。

在这种情况下,我有 3 个名字,每个名字都有几个日期。如果我按名称排序,然后按日期排序,它会按日期排序,但名称是混合的。如果我按名称排序,则日期不是降序排列的。

我能怎么做?

这是我的查询,返回正常。我只需要在需要时订购它们。

$selectAttributes = [1,2, 3];

$data = Facturas::select(
            'anio',
            'mes',
            'codCuenta',
            'op.nombre',
            'fechaHora',
            'cli.nombre',
            'cli.direccion',
            'lecturaAnterior',
            'lecturaTomada',
        )
 
            ->leftjoin('clientes as cli', 'Facturas.codCuenta', 'cli.cod_cuenta')
            ->leftjoin('operadores as op', 'op.cod_operador', 'codLector')
            ->where('Facturas.anio', $a)
            ->where('Facturas.mes',  $m)
            ->where('Facturas.ciclo', $c)
            ->whereIn('nombreArchivo', $selectAttributes)
            ->orderby('op.nombre', 'desc')
            ->orderby('fechaHora', 'desc')
            ->get();

我需要将相同的名称组合在一起,并且该名称的日期按降序排列。类似的东西。

nombre1   fecha  5
nombre1   fecha  4
nombre1   fecha  3
nombre1   fecha  2
nombre2   fecha  5
nombre2   fecha  4
nombre2   fecha  3
nombre2   fecha  2
nombre3   fecha  5
nombre3   fecha  4
nombre3   fecha  3.... etc.

有人知道我该怎么做吗?我会非常感激。

它目前看起来像这样:

nombre1   fecha  5
nombre3   fecha  5
nombre1   fecha  4
nombre3   fecha  4
nombre2   fecha  4
nombre1   fecha  3
nombre2   fecha  3
nombre2   fecha  2
nombre1   fecha  2

标签: sqllaraveleloquent

解决方案


推荐阅读