Mysql
 sql >> база данни >  >> RDS >> Mysql

Сравнете MySQL с CSV и открийте разликите

Един начин да го направите:

(Ако приемем, че вече знаете как да отворите файл и да изпълните заявка.)

Първо прочетете редове от вашия CSV и приемете, че данните липсват в 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'];
}

След това извлечете редове от вашата заявка и съответно попълнете масива, който сте създали от 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'];
    }
}

Можете да промените реда на това и първо да обработите резултатите от заявката. И двата реда ще работят, стига да изпълнявате логиката за актуализиране/вмъкване с втория източник на данни.

Можете да ksort($result); ако искате обединените стойности да са в ред, изведете $result въпреки това трябва.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. как да сравним дата и час в php/mysql

  2. Как да задам първия ден от седмицата на понеделник, когато използвам седмица(дата) в PHP/MySQL?

  3. Всеки начин за постигане на пълнотекстово търсене в InnoDB

  4. Как да премахнете водещите празни места в MySQL

  5. MySQL-Cluster не успява да се стартира