sql >> Databasteknik >  >> RDS >> Mysql

Trasig CSV, hur fixar jag det?

Du får kunna lura det och använda ett regex för att leta efter:

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

Men det är lite hackigt (acceptera i princip bara ett slutcitat när det omedelbart följs av ett kommatecken eller ett radslut). Samma logik skulle gälla för en hitta-ersätt. (Återigen, allt detta förutsätter att ett "bortfallande" citat aldrig kommer att följa standard CSV-regler (t.ex. ha ett kommatecken/rad [början/slutet] före eller efter det))

Jag antar att du inte har kontroll över originaldata och måste arbeta med det du har?

REDIGERA

Även om jag bara har testat detta på en liten exempel på din data, verkar detta för att hitta "stray" citattecken, som du kan använda en ersätta med "" på:

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


  1. Sammanfoga bord med främmande nycklar

  2. Skapa ett skalbart databasschema för att lagra golfresultat

  3. Skapa en tredje tabell från två tabeller

  4. Hur kan jag lagra värdet av ett användarvalt alternativ från en rullgardinsvalslista i mysql-databasen?