Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

CSV rusak, bagaimana cara memperbaikinya?

Anda mungkin dapat mengelabuinya dan menggunakan regex untuk mencari:

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

Tapi itu semacam hack-ish (pada dasarnya, hanya menerima kutipan akhir ketika segera diikuti dengan koma atau akhir baris). Logika yang sama akan berlaku untuk find-replace. (Sekali lagi, ini semua mengasumsikan bahwa kutipan "nyasar" tidak akan pernah mengikuti aturan CSV standar (misalnya memiliki koma/baris [awal/akhir] sebelum atau sesudahnya))

Saya berasumsi Anda tidak memiliki kendali atas data asli dan harus bekerja dengan apa yang Anda miliki?

EDIT

Meskipun saya hanya mencoba ini pada kecil sampel data Anda, ini tampaknya menemukan tanda kutip "nyasar", yang dapat Anda gunakan untuk menggantinya dengan "" pada:

(?<!^|"|,)"(?!"|,|$)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TINYINT vs ENUM (0, 1) untuk nilai boolean di MySQL

  2. apa yang saya lakukan salah saat mengonversi

  3. MySQL PILIH dan ORDER BY

  4. Bagaimana cara mengubah zona waktu MySQL dalam koneksi database menggunakan Java?

  5. Bagaimana cara men-debug kesalahan yang tidak memiliki pesan kesalahan?