Laravel 5.5 Eloquent获得超过1列的独特性

时间:2017-09-26 09:20:08

标签: php laravel laravel-5 eloquent

我有一个由id索引的表,并且还有一个列描述。

我希望以填充广播组的形式使用它。

我的问题是如果我尝试

$colours = Colours::where('manufacturer_id',"=",$man)->select('id','description')->orderBy('description')->groupBy('description')->get();

我得到了

  

SQLSTATE [42000]:语法错误或访问冲突:1055 SELECT列表的表达式#2不在GROUP BY子句中,并且包含非聚合列' cl24-ids.colours.manufacturer_id'它在功能上不依赖于GROUP BY子句中的列;这与sql_mode = only_full_group_by(SQL:从description选择manufacturer_idcolours不兼容,其中manufacturer_id = 1组description

任何想法,或者我应该使用非雄辩的解决方案吗?

3 个答案:

答案 0 :(得分:2)

distinct方法允许您强制查询返回不同的结果:

$users = DB::table('users')->distinct()->get();

获取唯一行

$categories = Machine::distinct('category')->pluck('category','antoher');

答案 1 :(得分:1)

 $colours = Colours::where('manufacturer_id',"=",$man)
                    ->select('id','description')->groupBy('description')->get();

答案 2 :(得分:0)

您可以通过在带有distinct的get方法中将列作为数组传递来获取不同数据。

$myusers = User::distinct()->get(['created_by']);