반응형
SQL의 where in에 많은 데이터가 들어가는 경우가 있을 수 있다.
이 경우 다음과 같은 에러가 출력될 수도 있다.
in Compilation failed: regular expression is too large at offset 숫자
일단 해결 방법으로 php의 메모리를 늘려보기도 하고 여러 방법으로 접근을 했지만 해결되지 않았고...
where_in을 여러번 쓰는 방법으로 해결 했다.(Codeigniter의 경우)
$this->db->group_start();
$new_pids_chunk = array_chunk($newid_arr,1000);
foreach($new_pids_chunk as $new_pids_arr){
$this->db->or_where_in("h.id",$new_pids_arr);
}
$this->db->group_end();
위의 방법으로 해결이 가능하다.
그런데 추가 개발이 없기에 어쩔 수 없이 where_in을 계속 쓰기는 하지만...꼭 저 안에 수만개의 데이터가 들어가서 검색하게 만들어야 했을까...다른 방법은 없었을까 정말...
728x90
'php' 카테고리의 다른 글
코드이그나이터 서브 폴더 접근 (0) | 2021.11.18 |
---|---|
php 그리고 psr (0) | 2021.10.22 |
php에서 ajax로 json받기 (0) | 2021.06.29 |
Codeigniter index.php 제거 (0) | 2021.06.07 |
이전 달 다음 달 자료 가져오기 (0) | 2021.06.03 |
댓글