Php Distinct在Laravel中未按预期工作
我希望下面的输出只有一个Php Distinct在Laravel中未按预期工作,php,laravel,Php,Laravel,我希望下面的输出只有一个qid而不是两个,因为我使用的是->distinct('qid') Vardump在数组中显示两个对象,而我预期只有一个对象具有一个qid: array(2) { [0]=> object(stdClass)#340 (21) { ["id"]=> int(27) ["created_at"]=> string(19) "2019-10-18 18:15:20" ["updated_at"]=> string(19) "2019-10-18 18:
qid
而不是两个,因为我使用的是->distinct('qid')
Vardump在数组中显示两个对象,而我预期只有一个对象具有一个qid
:
array(2) { [0]=> object(stdClass)#340 (21) { ["id"]=> int(27) ["created_at"]=> string(19) "2019-10-18 18:15:20" ["updated_at"]=> string(19) "2019-10-18 18:15:20" ["qid"]=> int(137) ["qrank"]=> int(1) } [1]=> object(stdClass)#341 (21) { ["id"]=> int(28) ["created_at"]=> string(19) "2019-10-18 18:15:47" ["updated_at"]=> string(19) "2019-10-18 18:15:47" ["qid"]=> int(137) ["qrank"]=> int(1) } }
我错过了什么?试着这样做:
$update_18 = DB::table('posts')
->groupBy('qid')
->get();
您需要按如下方式使用
distinct
:
$query = DB::table('posts')->distinct()->get(['qid']);
在拉威尔不接受任何参数。因此,只需像这样使用:
$update_18 = DB::table('posts')
->distinct()
->get();
尝试使用分组方式
distinct
不接受任何argument@ascsoftwdistinct
没有定义参数,但如果参数通过$columns=func_get_args()存在,它会使用参数代码>though@lagbox感谢您提供的信息,我不知道。@ascsoftw,尽管这可能只在6.x中,这可能不是他们正在使用的版本,但这将不会返回除“qid”之外的任何字段
$update_18 = DB::table('posts')
->distinct()
->get();