Ben bir CSV $data
içine dosya analiz ithalat ve bir PHP programı yapıyorum ve veritabanına "yeni" bir satır eklemek için olsun veya olmasın ($saveNew
).
Şu anda, ben çirkin bir karışıklık biraz var: (genelleştirilmiş pseudo-PHP)
function synchronize($data,$saveNew) {
$existing_ids = $table->find_all('ID'); //array of ID's in the table
$incoming_ids = get_key('ID',$data); //grabs the ID field from each record
$new_ids = array_diff($incoming_ids,$existing_ids);
foreach ($data as $record) {
if (in_array($record['ID'],$new_ids)) { //it's new
if ($saveNew) $table->insert($record);
else continue;
} else {
$table->update($record);
}
}
}
Bana göre, bu sadece bir kokusu vardır, ve ben SQL ile aşina değilim dışında, sadece tek bir sorguda bunu başarabilir düşünüyorum.
Benim app basit bir ORM kullanıyorum, ama ben kolayca sadece düz SQL kullanabilirsiniz.
Oh, ve ben MySQL kullanıyorum.
Bu sadece tek bir sorgu ile yapılabilir mi? Bu basit bir çözüm ile ortak bir sorun olacak gibi görünüyor, ama ben sadece bunu anlamaya olamaz.