【问题标题】:MySql load data inline adds double quote around stringMySql 加载数据内联在字符串周围添加双引号
【发布时间】:2016-04-01 12:24:24
【问题描述】:

我正在使用 mysql load data inline 将 csv 加载到数据库中。我知道在字符串周围添加双引号是默认行为,但我希望有一个选项可以关闭它。我测试了一个字符串之间是否不包含空格,即汽车。但是,如果字符串是我的车,它将显示为“我的车”。我尝试了很多东西,但似乎无法摆脱这些引用。我在所有列周围添加了双引号并使用了 Mysql ESCAPED BY 但这不起作用。

【问题讨论】:

  • 请编写您的 SQL 查询。我建议你在保存他时更改你的 CSV,为字段分隔符选择不同的选项

标签: php mysql mysqli pdo mysql-error-1064


【解决方案1】:

我不建议您使用 excel。 Open office Calc 更好,因为他可以通过更多选项(以及 UTF-8 格式)保存 CSV

在使用加载数据 infile 之前保存 CSV 时查看我的配置(我还没有打开英文办公室,sry)。

我在数据库中添加 CSV 的代码:

$dataload = 'LOAD DATA LOCAL INFILE "'.$nomfichier.'"
                        REPLACE
                        INTO TABLE '.$this->csvTable.' CHARACTER SET "utf8"
                        FIELDS TERMINATED BY "\t"
                        IGNORE 1 LINES
                    ';

如果您无法访问 CSV 并以您想要的方式保存他,您可以使用 SQL 选项。 Doc 特别是这几行:

   [{FIELDS | COLUMNS}
        [TERMINATED BY 'string']
        [[OPTIONALLY] ENCLOSED BY 'char']
        [ESCAPED BY 'char']
    ]
    [LINES
        [STARTING BY 'string']
        [TERMINATED BY 'string']
    ]

【讨论】:

  • 不幸的是,在这种情况下这对我不起作用。我尝试了 LibreOffice 路由和我自己创建的文本文件。这也是一个新问题,因为之前导入的数据版本没有这个问题。它似乎只在字段中有双引号字符时出现。我目前正在考虑如何删除它,但它并不优雅。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-02
  • 1970-01-01
  • 2011-01-27
  • 1970-01-01
  • 2013-02-24
相关资源
最近更新 更多