Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL使用regex分隔符导入CSV文件_Mysql_Sql_Database_Csv_Import - Fatal编程技术网

MySQL使用regex分隔符导入CSV文件

MySQL使用regex分隔符导入CSV文件,mysql,sql,database,csv,import,Mysql,Sql,Database,Csv,Import,我有一个大的文本文件(我称之为CSV文件,尽管从技术上讲它不是),其中每一行看起来如下: col1值a col2值b col3值c… col1 valueX col2 valueY col3 valueZ 不是在文件顶部有一行声明每列的标题,而是每行中每列的名称都在该列的值之前 我正在尝试将此文件中的值(valueA、valueB、valueC等)导入MySQL数据库。我知道我可以使用以下方法导入更简单的CSV样式文件的内容: LOAD DATA LOCAL INFILE 'test.csv'

我有一个大的文本文件(我称之为CSV文件,尽管从技术上讲它不是),其中每一行看起来如下:

col1值a col2值b col3值c…
col1 valueX col2 valueY col3 valueZ

不是在文件顶部有一行声明每列的标题,而是每行中每列的名称都在该列的值之前

我正在尝试将此文件中的值(valueA、valueB、valueC等)导入MySQL数据库。我知道我可以使用以下方法导入更简单的CSV样式文件的内容:

LOAD DATA LOCAL INFILE 'test.csv'
INTO TABLE test
FIELDS TERMINATED BY ' '
LINES TERMINATED BY '\n'
IGNORE 1 LINES;
但是,对于我试图导入的文件的结构来说,这实际上不起作用

由于我的数据文件中的每一列的名称都可以有一个可变的长度,我理想地希望为以选项结尾的字段指定一个正则表达式(类似于[a-z]{3,}),但这不起作用


那么,如何将这些数据解析到数据库表中呢?

多大是“大”?通常有两种方法:将其加载到模拟源文件结构的暂存表中,或预处理源文件以匹配目标表。详细信息(平台、硬件、文件大小)将指导解决方案。该文件包含大约1000000行。我在iMac上使用的是OS X,它有3.1GHz的Core 2 Duo和8GB的ram,尽管我有一台Linux(Ubuntu)服务器,可以使用许多内核(我想是12个)和24GB的ram。不过,我更愿意将数据加载到Mac上的数据库中。