sql >> Databasteknik >  >> RDS >> Mysql

PHP MYSQL importera CSV och sedan jämföra och ta bort redundanta poster

Håll bara ett konto över dina nycklar.

Spara varje $key i en array i din while, och till slut kör en fråga som säger

DELETE FROM tabel WHERE key NOT IN (listofcommaseparatedkeysgoeshere)
$arrayThatYouNeedToTest = array();
$handle = fopen($file,"r");
fgetcsv($handle, 1000, ",");//skip first row since they are headers
while(($fileop = fgetcsv($handle, 1000, ",")) !== false) //read line by line into $fileop
{
  //read array values into vars
  $item1 = $fileop[0];
  $item2 = $fileop[1];
  $key = $fileop[2];
  // and a couple more

  // now INSERT / UPDATE data in MySQL table
  $sql = mysql_query("INSERT INTO table (item1,item2,key) 
    VALUES ('$item1','$item2','$key') 
    ON DUPLICATE KEY UPDATE item1='$item1',item2='$item2'");

   $arrayThatYouNeedToTest[] = $key;    

}

$stringThatYouNeedToInspect = implode(",",$arrayThatYouNeedToTest);
$queryYouREALLYneedToCheckFirst = "DELETE FROM tabel WHERE key NOT IN  (".$stringThatYouNeedToInspect.")";

//$result = mysql_query($queryYouREALLYneedToCheckFirst);


  1. SQLSTATE[23000]:Överträdelse av integritetsbegränsning:1048 Kolumnen "post" kan inte vara null

  2. Ändra kolumn kontra ändra kolumn

  3. Ta reda på vilken valutasymbol din session använder i Oracle

  4. Hur Hibernate Batch-insättning fungerar?