50000 идентификаторов проверить, где пункт в codeigniter - PullRequest
2 голосов
/ 21 апреля 2020

Я пробовал ниже запрос

  $arrIds = array('1'=>'1111'......'50000'=>'50000'); // 50K ids here

  $this->db->select('id'); 
  $this->db->from('mytable');
  $this->db->where_in('id',$arrIds);  
  $query = $this->db->get();
  $result = $query->result_array();

Получил эту ошибку при запуске

**Oops! Something's wrong!**

Severity: Warning

Message: preg_match(): Compilation failed: regular expression is too large at offset 46343

Filename: database/DB_query_builder.php

Line Number: 2395

Пожалуйста, предложите, как решить эту проблему.

1 Ответ

5 голосов
/ 21 апреля 2020

Попробуйте запустить его в пакетах

$arrIds = array('1'=>'1111'......'50000'=>'50000'); // 50K ids here

foreach (array_chunk($arrIds, 10000) as $chunkIds) {
  $this->db->select('id'); 
  $this->db->from('mytable');
  $this->db->where_in('id', $chunkIds);  
  $query = $this->db->get();
  $result = array_merge($result, $query->result_array());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...