提问人:Yandra Adie 提问时间:11/30/2018 最后编辑:Yandra Adie 更新时间:11/30/2018 访问量:5383
雄辩的 whereIn 错误:1390 准备好的语句包含太多占位符 laravel 5.7
Eloquent whereIn error:1390 Prepared statement contains too many placeholders laravel 5.7
问:
我有一个简单的查询,如下所示:
$arp_terhadap_st_reg = Sfs::select('msisdn')->wherebetween('created', [$datefrom, $dateto])->where('cluster',$cluster)->pluck('msisdn');
$arp_outlet_reg = Arps::whereIn('msisdn',$arp_terhadap_st_reg)->count();
在这里,$idList是一个数组,其中包含用户 ID,我有超过 60000 个 id。
每次,代码都会告诉我:
"error":{"type":"Exception","message":"SQLSTATE[HY000]: General error: 1390 Prepared statement contains too many placeholders
SQL:选择 count(*) 作为聚合,从 where in (?, ?, ?, ?,...................arps
msisdn
很多 ?...
那么,我该如何解决这个问题。谢谢。
答:
3赞
Leena Patel
11/30/2018
#1
如下用法array_chunk
$arp_terhadap_st_reg = Sfs::select('msisdn')->wherebetween('created', [$datefrom, $dateto])->where('cluster',$cluster)->get()->toArray();
$arp_outlet_count = 0;
foreach (array_chunk($arp_terhadap_st_reg, 1000) as $arp_terhadap_st) {
$arp_outlet_reg = Arps::whereIn('msisdn',$arp_terhadap_st)->count();
$arp_outlet_count = $arp_outlet_count + $arp_outlet_reg;
}
您将获得您的总数$arp_outlet_count
评论
0赞
Jaber Al Nahian
12/10/2020
whereNotIn呢?
评论