/** * Execute the console command. * * @return mixed */ public function handle() { $bar = $this->output->createProgressBar(Fio::count()); Fio::chunk(2000, function ($rows) use($bar) { $bar->advance(2000); $firstNames = []; $lastNames = []; $middleNames = []; foreach ($rows as $row) { // рабиваем фио на составляющие $row['name'] = explode(' ', $row['name']); $row['nameRU'] = explode(' ', $row['nameRU']); if (count($row['name']) != 3 || count($row['nameRU']) != 3) { continue; } $firstNames[] = ['nameUA' => $row['name'][1], 'nameRU' => $row['nameRU'][1]]; $lastNames[] = ['nameUA' => $row['name'][0], 'nameRU' => $row['nameRU'][0]]; $middleNames[] = ['nameUA' => $row['name'][2], 'nameRU' => $row['nameRU'][2]]; } DB::insert("INSERT IGNORE INTO `first_names` (`nameUA`, `nameRU`) VALUES {$this->_implodeValues($firstNames)} ON DUPLICATE KEY UPDATE c=c+1"); DB::insert("INSERT IGNORE INTO `last_names` (`nameUA`, `nameRU`) VALUES {$this->_implodeValues($lastNames)} ON DUPLICATE KEY UPDATE c=c+1"); DB::insert("INSERT IGNORE INTO `middle_names` (`nameUA`, `nameRU`) VALUES {$this->_implodeValues($middleNames)} ON DUPLICATE KEY UPDATE c=c+1"); }); }