mysql的load data能按照导入字段长度导入数据吗

m使用load data工具,源文件没有分隔符是按照字段长度分配的,如何在没有分隔符的情况下将文件导入到数据库中

  • 这篇博客也许可以解决你的问题👉 :通过MySQL 命令行load data导入1亿多条数据,耗时3个半小时……
  • 除此之外, 这篇博客: MySQL中的load data、source及其更改、删除表中字段分组、排序等SQL语句、表连接中的 多个表的连接 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • select ... from1 inner join2 on 连接条件;
    

    将表1的列和表2的值按照一定的规则连接起来一起输出(把两列取值相等的记录联系在一起)这里一般的连接规则是两个列有相同的取值,当两个列名相同时,用表1.列名 = 表2.列名来区分列。
    为了便于处理我们可以给表取别名来方便使用,这里的别名只针对该条语句,不针对表结构。格式表名 表别名
    当这里的表1中的列数据在表2中没有与之对应的值,则这种情况不输出。
    两张表的记录完全满足连接条件才会出现的结果中。

    select ... from1 left out join2 on 连接条件;
    

    这里的out可以省略,位于连接左侧的表,不管是否连接到了记录(表2中有相对应的值),和内连接一样都会出现在结果中,当没有的连接到的记录,对应的表中显示null

    select ... from1 right out join2 on 连接条件;
    

    这里out可以省略

    • 连接查询的另一种写法
      内连接的等价写法
    select ... from1,2 where 连接条件;
    

    select ... from1 inner join2 using(列名);
    

    这个是内连接的MySQL独有语法 ,前提是两个表中有相同的列名,且连接关系为两个表的列名值相等

  • 以下回答由chatgpt基于相关博客总结生成:

    根据提供的参考资料,使用mysql的load data工具导入没有分隔符的源文件按照字段长度分配到数据库中的操作步骤如下:

    1. 首先,确保mysql的local_infile参数已经开启。可以通过以下命令检查并修改服务器配置:
    show global variables like 'local_infile';
    set global local_infile = 'ON';
    

    如果结果为OFF,需要执行set global local_infile = 'ON';命令开启local_infile参数。

    1. 创建一个目标表来存储导入的数据,假设表名为test,字段分别为field1field2field3,可以运行以下SQL语句来创建表:
    CREATE TABLE test (
        field1 VARCHAR(10),
        field2 VARCHAR(20),
        field3 VARCHAR(30)
    );
    

    请根据实际数据的字段长度来调整字段类型和长度。

    1. 将没有分隔符的源文件保存为一个文本文件,假设文件名为source.txt

    2. 使用以下命令将数据加载到目标表中:

    LOAD DATA LOCAL INFILE 'source.txt'
    INTO TABLE test
    (@data)
    SET field1 = SUBSTR(@data, 1, 10),
        field2 = SUBSTR(@data, 11, 20),
        field3 = SUBSTR(@data, 21, 30);
    

    请根据实际数据的具体字段长度来调整SUBSTR函数中的起始位置和长度。

    1. 执行以上命令后,数据将会被导入到test表中。

    注意:如果在导入过程中遇到字符编码问题,可以修改数据库和表的字符集为相同的编码格式,如GBK, 使用以下命令进行修改:

    ALTER DATABASE your_database_name CHARACTER SET gbk;
    ALTER TABLE test CONVERT TO CHARACTER SET gbk;
    

    以上就是按照字段长度导入没有分隔符的源文件到数据库中的解决方案。如果你需要进一步的帮助,请提供更具体的问题描述和源文件的示例。

建議把 表的格式,和一部分資料(可以把敏感內容修改),列出來,
並且把想要的結果 手動列出,讓其他人可以比較容易的提出解決方案。