본문 바로가기
php

where in에 많은 데이터가 들어갈 경우 feat Codeigniter

by 하이바네 2021. 6. 24.
반응형

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

댓글