我是MySQL的新手。我需要用.txt文件填充一个字段。
我的脚本当前为:
LOAD DATA INFILE '/attachments/file.txt' into table files (data);
然而,当我运行查询时,MySQL显示我不仅更新了一条记录,而且更新了多条记录——我的.txt文件的每一行都到不同的字段。
是否有可能要求我的脚本上传整个。txt文件到一个字段?
谢谢!
有几种方法可以做到这一点,这取决于您的场景的细节:
加载数据文件
你可能想要这样的东西:
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;
这将从/path/to/file/data_file.csv
导入到databasename.tablename
,文本文件中的每一行都将导入到表中的新行中,该行中的所有数据将放入名为column1
的列中。
LOAD_FILE
或者您可以使用LOAD_FILE函数,如下所示:
UPDATE table
SET column1=LOAD_FILE('/path/to/file/data_file.csv')
WHERE id=1;
这将导入文件/path/to/file/data_file.csv
的内容,并将其存储在id=1
所在行的column1
中。更多细节请点击这里。这主要用于将二进制文件加载到BLOB
字段中,但如果您想要的话,也可以使用它将整个文本文件吸进单行中的单列中。
使用TEXT列
对于加载大型文本文件,应该使用text类型的列——它可以存储非常大量的文本而不会出现问题——参见这里了解更多详细信息。