当我以csv格式从excel导出数据时,它将一些数据封装在双引号中。例如 8"
变成 "8"""
. 我相信这次行动是为了让数据库在以后理解内部报价。
但对于单引号 8'
,它保持不变,这会导致问题(见下图),而我导入的csv。
为什么不引用 8'
进入 "8'"
我也是? 8'
变成 '
导入时,导入时 "8'"
将导致 8'
不引用单个报价会导致一些数据丢失。
相关问题:
导入数据时,在mysql中quotechar是什么意思?
excel在csv导出时添加额外的引号
1条答案
按热度按时间mgdq6dx11#
做了这么多实验后,我终于找到了一个非常接近的答案。
结论一:
这是mysql工作台的问题。它的导入向导工作不好。我在navicat下测试每一个测试数据,navicat得到了所有的东西。
单引号可能导致意外行为。
测试:
默认情况下,mysql workbench导入向导将第一行值作为列名,而在navicat中,我可以对此进行配置。
(所有测试文件都是excel导出的csv utf8编码。)
测试1:
例如。:
8'
(只有1条记录),没有列名。mysql:弹出一些未知的错误,不管你改变什么配置,都无法得到原始数据。
navicat:works fine.
测试2:
例如。:
8'
,只有1条记录具有列名,或者有其他记录没有列名mysql:可以正确处理单引号。
纳维卡特:没问题。
测试3:
如果存在单引号,在大多数情况下,导入向导不能很好地处理双引号。
e、 例如:单引号数据在双引号数据之前。
mysql:完全失败。
纳维卡特:没问题。