gpt4 book ai didi

mysql - 将固定宽度、空格分隔的 .txt 文件加载到 mySQL 中

转载 作者:行者123 更新时间:2023-11-29 15:27:57 25 4
gpt4 key购买 nike

我有一个 .txt 文件,其中包含一堆格式化数据,如下所示:

...
1 75175.18 95128.46
1 790890.89 795829.16
1 875975.98 880914.25
8 2137704.37 2162195.53
8 2167267.27 2375275.28
10 2375408.74 2763997.33
14 2764264.26 2804437.77
15 2804504.50 2881981.98
16 2882048.72 2887921.25
16 2993093.09 2998031.36
19 3004104.10 3008041.37
...

我正在尝试将每一行作为条目加载到数据库中的表中,其中每一列都是不同的字段。我无法让 mySQL 正确分离所有数据。我认为问题在于并非所有数字都用等距的空白量分隔。

这是我迄今为止尝试过的两个查询(我还尝试了这些查询的几种变体):

LOAD DATA LOCAL INFILE 
'/some/Path/segmentation.txt'
INTO TABLE clip (slideNum, startTime, endTime)
SET presID = 1;


LOAD DATA LOCAL INFILE
'/some/Path/segmentation.txt'
INTO TABLE clip
FIELDS TERMINATED BY ' '
LINES TERMINATED BY '\n'
(slideNum, startTime, endTime)
SET presID = 1;

有什么想法可以让它发挥作用吗?

最佳答案

这些就是我们所说的“固定宽度”记录,LOAD DATA 不能很好地处理它们。选项:

  1. 首先清理 Excel 中的数据,或者
  2. 将数据加载到只有 1 列的临时表中,将整个文本行插入该列。然后,您可以使用 SUBSTR()TRIM() 将所需的列分割到最终表中。
  3. 或者使用用户变量 (@row),您可以在 LOAD DATA 语句中完成这一切。
LOAD DATA LOCAL INFILE 
'/some/Path/segmentation.txt'
INTO TABLE clip
(@row)
SET slideNum = TRIM(SUBSTR(@row,1,4)),
startTime = TRIM(SUBSTR(@row,5,13)),
endTime = TRIM(SUBSTR(@row,18,13))
;

关于mysql - 将固定宽度、空格分隔的 .txt 文件加载到 mySQL 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58936945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com