str_limit storage_path index for ciclo laravel eloquent builder

storage_path - ¿Cómo obtener valores distintos para los campos de columna que no son clave en Laravel?



str_limit laravel (6)

Esto podría ser bastante fácil, pero no tengo idea de cómo hacerlo.

Tengo una tabla que puede tener valores repetidos para un campo de columna no clave particular. ¿Cómo escribo una consulta SQL usando Query Builder o Eloquent que obtendrá filas con valores distintos para esa columna?

Tenga en cuenta que no estoy obteniendo esa columna solo, sino que está junto con otros valores de columna, por lo que distinct() podría no funcionar realmente. Entonces, ¿esa pregunta básicamente puede ser cómo especificar la columna que quiero que sea distinta en una consulta ahora que distinct() no acepta parámetros?


Agrupar por no funcionará si las reglas de la base de datos no permiten que ninguno de los campos seleccionados se encuentre fuera de una función agregada. En su lugar, use las colecciones de Laravel .

$users = DB::table(''users'') ->select(''id'',''name'', ''email'') ->get(); foreach($users->unique(''name'') as $user){ //.... }


Aunque llego tarde para responder a esto, un mejor enfoque para obtener registros distintos con Eloquent sería

$user_names = User::distinct()->get([''name'']);


Deberías usar groupby . En Query Builder puede hacerlo de esta manera:

$users = DB::table(''users'') ->select(''id'',''name'', ''email'') ->groupBy(''name'') ->get();


En Eloquent también puede consultar de esta manera:

$users = User::select(''name'')->distinct()->get();


Tenga en cuenta que groupBy como se usa arriba no funcionará para postgres.

Usar distinct es probablemente una mejor opción, por ejemplo, $users = User::query()->distinct()->get();

Si usa la query , puede seleccionar todas las columnas según lo solicitado.


en elocuente puedes usar esto

$users = User::select(''name'')->groupBy(''name'')->get()->toArray() ;

groupBy en realidad está buscando los valores distintos, de hecho, groupBy categorizará los mismos valores, de modo que podamos usar funciones agregadas sobre ellos. pero en este escenario no tenemos funciones agregadas, solo estamos seleccionando el valor que hará que el resultado tenga valores distintos