Laravel查询获取计数(*)而不是不同的id

时间:2017-03-11 21:01:59

标签: laravel laravel-4.2

我真的很难过。我使用Laravel 4.2在PHP中开发Web应用程序,并且我在联系人页面上不断搞乱结果。基本上,此功能的第一步是获取以联系人ID列表开头的过滤联系人列表(在查询中有一些其他标准可供选择联系人),并在我的代码中稍后操作列表。我相信这个查询存在一个问题,以后会搞乱,而且我不确定原因。所以,这是我的查询,简化为查询的一部分,以获取所有联系ID,而不是符合条件的那些:

$contacts = DB::table('contacts')
    ->select(DB::raw('distinct contacts.id'))
    //other filtering criteria that doesn't seem to be the source of the problem
    ->whereRaw('contacts.id in (' . $contact_ids_string . ') ');

其中$ contact_ids_string是我之前在包含联系人id的代码中构建的字符串(我一直在尝试将$ contact_ids绑定到查询时遇到奇怪的错误,所以我就是这样做的。

无论如何,我一直得到奇怪的结果,所以我在查询中引入了一个拼写错误消息以便我可以查看正在构建的查询,这里是查询(删除了拼写错误):

选择计数(*)作为来自'联系人的汇总'其中contacts.id在(1,2,3,4,5,6)中

我认为问题可能是查询包含count(*)而不是distinct contacts.id,这就是我想要的。

为什么会发生这种情况以及如何解决这个问题?谢谢!

0 个答案:

没有答案