2

我是 MySQL 的菜鸟。我需要用 .txt 文件填充一个字段。

我的脚本目前显示:

LOAD DATA INFILE '/attachments/file.txt' into table files (data);

但是,当我运行查询时,MySQL 显示我不仅更新了一条记录,而且更新了多条记录——我的 .txt 文件的每一行都转到不同的字段。

是否可以要求我的脚本将整个 .txt 文件上传到单个字段中?

谢谢!

4

1 回答 1

11

有几种方法可以做到这一点,具体取决于您的场景细节:

加载数据文件

你可能想要这样的东西:

LOAD DATA LOCAL INFILE '/path/to/file/data_file.csv'
    IGNORE
    INTO TABLE `databasename`.`tablename`
    CHARACTER SET utf8
    FIELDS
        TERMINATED BY '\n'
        OPTIONALLY ENCLOSED BY '"'
    IGNORE 1 LINES
    (column1)
SHOW WARNINGS;

这将导入 from /path/to/file/data_file.csvinto databasename.tablename,将文本文件中的每一完整行导入表中的新行,并将该行中的所有数据放入名为 的列column1中。更多细节在这里

加载文件

或者您可以使用 LOAD_FILE 函数,如下所示:

UPDATE table
  SET column1=LOAD_FILE('/path/to/file/data_file.csv')
  WHERE id=1;

这将导入文件的内容/path/to/file/data_file.csv并将其存储column1id=1. 更多细节在这里。这主要用于将二进制文件加载到BLOB字段中,但是如果您想要的话,您也可以使用它将整个文本文件吸入单行中的单个列中。

使用 TEXT 列

要加载大型文本文件,您应该使用 TEXT 类型的列 - 它可以毫无问题地存储大量文本 - 请参阅此处了解更多详细信息。

于 2013-06-14T17:07:15.860 回答