Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

So sánh MySQL với CSV và tìm sự khác biệt

Một cách để làm điều đó:

(Giả sử bạn đã biết cách mở tệp và thực hiện truy vấn.)

Đầu tiên hãy đọc các hàng từ CSV của bạn và giả sử dữ liệu bị thiếu trong 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'];
}

Sau đó, tìm nạp các hàng từ truy vấn của bạn và điền vào mảng bạn đã tạo từ CSV cho phù hợp.

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

Bạn có thể thay đổi thứ tự của điều này và xử lý kết quả truy vấn trước. Một trong hai thứ tự sẽ hoạt động, miễn là bạn thực hiện cập nhật / chèn logic với nguồn dữ liệu thứ hai.

Bạn có thể ksort($result); nếu bạn muốn các giá trị đã hợp nhất theo thứ tự, thì xuất $result tuy nhiên bạn cần.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cú pháp của Alter Table trông như thế nào khi thêm cột DATETIME?

  2. MySQL so với MariaDB

  3. MySQL REGEXP - Loại bỏ khoảng trắng và các ký tự không phải số

  4. làm thế nào để tìm nạp dữ liệu từ nhiều bảng?

  5. Multi_Curl với các giá trị từ cột mysql