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

CSV bị hỏng, tôi có thể sửa chữa nó như thế nào?

Bạn có thể có thể lừa nó và sử dụng regex để tìm kiếm:

"(.*?)"(?=,|$)

Nhưng đó là loại hack-ish (về cơ bản, chỉ chấp nhận một câu trích dẫn kết thúc khi ngay sau đó là dấu phẩy hoặc cuối dòng). Logic tương tự sẽ áp dụng cho tìm kiếm thay thế. (Một lần nữa, tất cả điều này giả định rằng một trích dẫn "đi lạc" sẽ không bao giờ tuân theo các quy tắc CSV tiêu chuẩn (ví dụ:có dấu phẩy / dòng [đầu / cuối] trước hoặc sau nó))

Tôi cho rằng bạn không có quyền kiểm soát dữ liệu gốc và phải làm việc với những gì bạn có?

CHỈNH SỬA

Mặc dù tôi chỉ thử điều này trên một nhỏ mẫu dữ liệu của bạn, điều này dường như để tìm các dấu ngoặc kép "lạc", mà bạn có thể sử dụng thay thế bằng "" trê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. BigQuery / SQL - Phân chia giá trị trên các biến thể cụ thể

  2. Tôi không thể thực thi các bản ghi đã chọn từ một bảng trong cơ sở dữ liệu trong đám mây sql của google bằng php

  3. Optimizer_search_depth trong Google Cloud SQL

  4. Không thể thay đổi cột được sử dụng trong ràng buộc khóa ngoại

  5. Nhập công cụ Excel CSV