Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Porównaj MySQL z CSV i znajdź różnice

Jeden sposób, aby to zrobić:

(Zakładając, że już wiesz, jak otworzyć plik i wykonać zapytanie.)

Najpierw przeczytaj wiersze z pliku CSV i załóż, że brakuje danych w 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'];
}

Następnie pobierz wiersze z zapytania i odpowiednio wypełnij tablicę utworzoną z pliku CSV.

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'];
    }
}

Możesz zmienić kolejność tego i najpierw przetworzyć wyniki zapytania. Każda kolejność będzie działać, o ile wykonasz logikę aktualizacji/wstawienia z drugim źródłem danych.

Możesz ksort($result); jeśli chcesz, aby scalone wartości były uporządkowane, wypisz $result jednak musisz.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Blokowanie wpisów wartości null do bazy danych

  2. Połącz się ze zdalną bazą danych MySQL za pomocą Visual C#

  3. Jak zautomatyzować migrację (schematu i danych) dla aplikacji PHP/MySQL

  4. Sprawdź, czy kolumna/klucz istnieje?

  5. Dynamiczne połączenie z drugą bazą danych MySQL w Ruby on Rails