У меня есть файл с тремя номерами мобильных телефонов, название компании и статус с миллионами записей. Я уже прочитал данные из файла и сохранил данные из каждого столбца в своих соответствующих массивах. Я бы использовал loadInfile mysql, но проблема вместо имен компаний я хочу хранить там company_ids, которые хранятся в моей таблице mysql. Так что в основном я хочу заменить имена компаний своими company_ids, но проблема в простых операторах выбора займет столько времени, потому что запись в миллионах. Просьба предложить мне приемлемый подход thankx.just ради понимания, я даю код ниже
$company_names_arr=array('ABC','Def','Ghi',.......);
foreach($company_names_arr as $arr)
{
$this->db->select('company_id');
$this->db->from('companies_info');
$this->db->where('company_name',$arr);
$q=$this->db->get();
$res=$q->result();
$company_ids_arr[]=$res;
}
я знаю, что выше написанный код не является приемлемым подходом к достижению того, чего я хочу достичь, поэтому, пожалуйста, предложите мне лучший способ thankx
Не забудьте вставить столько строк данных, они будут очень медленными, как вы уже узнали.
Используйте load data infile
для загрузки текстового файла, как в промежуточную таблицу. В промежуточной таблице должен быть указатель на столбце названия компании. Затем используйте insert... select... с соединением для ввода идентификатора компании в финальную таблицу.