mysql - 将 csv 文件加载到 MySQL,字段中以逗号分隔和逗号分隔

标签 mysql sql csv

我能够将 csv 文件上传到 MySQL,但是当在一个术语内部使用时无法区分逗号分隔的单词。

有 5 个字段由“,”分隔,但在某些行中,一个字段内部有“,”,它错误地分隔了本应是完整术语“abc, def”的两个词。下面是示例。

好行:field1,field2,field3,field4,field5

字段3不区分的行:field1,field2,"field3a, field3b",field4,field5

代码:

$upload = mysqli_query($cons, 
    'LOAD DATA LOCAL INFILE "file_name.csv" 
         INTO TABLE table_name 
         FIELDS TERMINATED by \'\,\' 
         LINES TERMINATED BY \'\n\' 
) or die(mysqli_error($cons));

请注意,它适用于“好行”,但对于其他类型的行,“field3b”作为“field4”插入到 MySQL 表中。

最佳答案

您正在寻找 FIELDS OPTIONALLY ENCLOSED option .

$upload = mysqli_query($cons, 
    "LOAD DATA 
        LOCAL INFILE 'file_name.csv'
        INTO TABLE table_name 
        FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"'
        LINES TERMINATED BY '\n'"           
);

注意:我将 php 单引号切换为双引号,因此查询中需要的转义更少。

关于mysql - 将 csv 文件加载到 MySQL,字段中以逗号分隔和逗号分隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54270280/

相关文章:

php - 如何通过phpmyadmin将csv文件导入mysql

php - Mysql和PHP以html列表显示所有用户数据

javascript - 从数据库获取所有纬度和经度以显示谷歌地图上的所有位置

javascript - jQuery 发布后页面不会刷新

sql - Bigquery 标准 SQL 中的 "contains"

sql - 我可以在 ASP.net MVC 中使用纯 SQL 吗?

powershell - 用特殊字符重命名CSV文件中的列标题

c# - 使用多个参数选择返回mysql语法错误

java - mysql 的一句话中可能有 3 个插入吗?

python - 将新列插入 csv?