sql >> Database >  >> RDS >> Mysql

Vergelijk MySQL met CSV en vind verschillen

Een manier om het te doen:

(Ervan uitgaande dat u al weet hoe u een bestand moet openen en een query moet uitvoeren.)

Lees eerst de rijen uit uw CSV en neem aan dat de gegevens ontbreken in SQL.

while (($row = fgetcsv($file)) !== FALSE) {
    $num = $row[0];  // or whatever CSV column the value you want is in
    $result[$num] = ['csv' => $num, 'sql' => '', 'status' => 'MISSING IN SQL'];
}

Haal vervolgens rijen uit uw zoekopdracht en vul de array die u hebt gemaakt vanuit de CSV dienovereenkomstig.

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    $num = $row['EAN']; // or whatever your column is named
    if (isset($result[$num])) {
        // This has a value from the CSV, so update the array
        $result[$num]['sql'] = $num;
        $result[$num]['status'] = 'OK';
    } else {
        // This doesn't have a value from the CSV, so insert a new row
        $result[$num] = ['csv' => '', 'sql' => $num, 'status' => 'MISSING IN CSV'];
    }
}

U kunt de volgorde hiervan wijzigen en eerst de queryresultaten verwerken. Beide volgordes zullen werken, zolang u de logica bijwerkt/invoegt met de tweede gegevensbron.

U kunt ksort($result); als je wilt dat de samengevoegde waarden in orde zijn, voer dan $result uit hoe dan ook.




  1. Hoe query postgre te optimaliseren

  2. Wat is de beste manier om gegevens tussen MS Access en MySQL te synchroniseren?

  3. Hoe kan ik kolommen over meerdere tabellen in MySQL optellen?

  4. Selecteer specifieke gegevens uit bepaalde XML-inhoud met behulp van de WHERE-clausule