8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

如何使用 LOAD DATA INFILE 将 CSV 文件中选定的列插入到 MySQL 数据库

Vijayendar Gururaja 1月前

45 0

我有一个包含 10 列的 CSV 文件。我想从该文件中仅选择一些列,然后使用 LOAD DATA INFILE 命令将它们加载到 MySQL 数据库中。

我有一个包含 10 列的 CSV 文件。我想从该文件中仅选择一些列,然后使用命令将它们加载到 MySQL 数据库中 LOAD DATA INFILE

帖子版权声明 1、本帖标题:如何使用 LOAD DATA INFILE 将 CSV 文件中选定的列插入到 MySQL 数据库
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Vijayendar Gururaja在本站《csv》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 对于那些有以下错误的人:

    错误代码:1290。MySQL 服务器正在使用 --secure-file-priv 选项运行,因此无法执行此语句

    您可以简单地运行此命令来查看哪个文件夹可以从中加载文件:

    SHOW VARIABLES LIKE "secure_file_priv";
    

    之后,您必须复制该文件夹中的文件并运行查询, LOAD DATA LOCAL INFILE 而不是 LOAD DATA INFILE .

  • 如果数据库表中的列数多于 csv 中的列数,则可以按如下方式进行:

    LOAD DATA LOCAL INFILE 'pathOfFile.csv'
    INTO TABLE youTable 
    CHARACTER SET latin1 FIELDS TERMINATED BY ';' #you can use ',' if you have comma separated
    OPTIONALLY ENCLOSED BY '"' 
    ESCAPED BY '\\' 
    LINES TERMINATED BY '\r\n'
    (yourcolumn,yourcolumn2,yourcolumn3,yourcolumn4,...);
    
  • 如果您不在服务器上,即在本地,您应该在文件夹中并使用以下参数:LOAD DATA local INFILE'ae.csv'

  • orlb 1月前 0 只看Ta
    引用 5

    注意行尾,使用程序查看隐藏字符,如果示例没有给出错误但导入了 0 条记录,请尝试使用 '\n'

  • 例子:

    ae.csv 文件的内容:

    "Date, xpto 14"
    "code","number","year","C"
    "blab","15885","2016","Y"
    "aeea","15883","1982","E"
    "xpto","15884","1986","B"
    "jrgg","15885","1400","A"
    

    CREATE TABLE Tabletmp (  
        rec VARCHAR(9) 
    );
    

    仅放置第 3 列:

    LOAD DATA INFILE '/local/ae.csv' 
    INTO TABLE Tabletmp
    FIELDS TERMINATED BY ','
    ENCLOSED BY '"'
    LINES TERMINATED BY '\r\n'
    IGNORE 2 LINES
    (@col1, @col2, @col3, @col4, @col5)
    set rec = @col3;
    
    
    select * from Tabletmp;
        2016
        1982
        1986
        1400
    
  • 当我运行类似程序时,出现语法错误。我必须将 (field,names) 放在末尾的分号之前才能使其正常工作。

  • LOAD DATA INFILE 'file.csv'
      INTO TABLE t1
      (column1, @dummy, column2, @dummy, column3, ...)
    FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '"'
    LINES TERMINATED BY '\r\n';
    

    只需将 column1、column2 等替换为您的列名,然后将 @dummy 放在您想要忽略的 CSV 中的列的位置。

    详细信息 请点击此处 .

  • 不幸的是,这并没有回答问题。这要求 .csv 中有两列,并将它们插入到数据库中的两个特定列中。发布者要求从 10 个 csv 中提取 2 列。

  • 同意@FabioNapodano。对于我的 v5.7,我需要将列名放在语句的末尾。

  • home 1月前 0 只看Ta
    引用 11

    虽然路径必须来自允许的安全区域,但这种方法效果最好。运行此命令 SHOW VARIABLES LIKE \'secure_file_priv\'; 然后将 csv 文件放在此位置

  • 感谢您提供文件的完整路径。有一会儿,我在搜索要将 csv 文件放入的 MySQL 目录!

  • 在加载数据文件语句中指定 CSV 中的列名称。

    代码如下:

    LOAD DATA INFILE '/path/filename.csv'
    INTO TABLE table_name
    FIELDS TERMINATED BY ','
    LINES TERMINATED BY '\r\n'
    (column_name3, column_name5);
    

    这里您只需向表的两列(您可以使用列名来选择它们)添加数据。

    您唯一需要注意的是,您有一个 CSV 文件 (filename.csv),每行有两个值。否则请说明。我有一个不同的解决方案。

    谢谢。

  • @Dharma 一个用于打印 100 个列名的 Python 3 程序,用于在范围 (1,100) 内的 i:print(\'@column\',i,\',\',end=\'\',sep=\'\')

  • 如果我有 100 列而只想导入 2 列,那么我应该写 (@col1, @col2, ...@col100) set name=@col4, id-@col2; 或者有一个简单的方法?

  • @shgnInc 指的是这个.com/questions/16285864/…

  • 我在 mysql 中运行您的答案并出现错误:错误 1148 (42000):此 MySQL 版本不允许使用该命令。

  • 引用 18

    将数据加载到 MySQL 中的表中并指定列:

    LOAD DATA LOCAL INFILE 'file.csv' INTO TABLE t1 
    FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'  
    (@col1,@col2,@col3,@col4) set name=@col4,id=@col2 ;
    

    @col1,2,3,4 是用于保存 csv 文件列的变量(假设为 4),name、id 是表列。

返回
作者最近主题: