sql >> Base de Datos >  >> RDS >> Mysql

CSV roto, ¿cómo puedo solucionarlo?

Usted puede ser capaz de engañarlo y usar una expresión regular para buscar:

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

Pero eso es una especie de hack-ish (básicamente, solo acepte una cita final cuando sea seguida inmediatamente por una coma o un final de línea). La misma lógica se aplicaría a buscar y reemplazar. (Nuevamente, todo esto supone que una cita "extraviada" nunca seguirá las reglas CSV estándar (por ejemplo, tener una coma/línea [comienzo/fin] antes o después))

Supongo que no tiene control sobre los datos originales y tiene que trabajar con lo que tiene.

EDITAR

Aunque solo he probado esto en un pequeño muestra de sus datos, esto parece encontrar las comillas "extraviadas", a las que puede usar un reemplazo con "" en:

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