Laravel 5.5 Eloquent在多个色谱柱中变得清晰

ajsxfq5m  于 2022-11-26  发布在  其他
关注(0)|答案(4)|浏览(81)

我有一个按id索引的表,它还有一个列描述。
我想在表单中使用它来填充单选按钮组。
我的问题是如果我

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

我得到
数据库状态[42000]:语法错误或访问冲突:1055 SELECT列表的表达式#2不在GROUP BY子句中,并且包含非聚集列'cl 24-ids. colors.manufacturer_id',该列在功能上不依赖于GROUP BY子句中的列;这与sql_mode=only_full_group_by不兼容(SQL:从colours中选择descriptionmanufacturer_id,其中manufacturer_id = 1,按description分组)
有什么好主意吗?或者我应该只用一个非雄辩的解决方案?

hgtggwj0

hgtggwj01#

distinct方法允许您提取查询以返回不同的结果:

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

获取唯一行

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

dfty9e192#

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

xfyts7mz3#

您可以通过在get方法中使用distinct将column作为数组传递来获取distinct数据。
$myusers = User::distinct()->get(['created_by']);

mepcadol

mepcadol4#

无需更改系统中的任何位置,只需使用laravel中的代码即可

\DB::statement("SET SQL_MODE=''");//this is the trick use it just before your query

$data=Task::where('user_id', Auth::user()->id)->where('status', 0)->groupBy('task_code')->get(['id','task_code', 'title']);

相关问题