我知道我的问题已经存在已回答的问题,但到目前为止,我还没有找到一个100%回答我的问题。
无论如何,有没有办法[在这里插入标题]其中[分隔符]是字符数?我想说的是......例如,文本文件有三个数据:名称,年龄和性别。格式看起来像这样......
约瑟夫____ 18_M(假装下划线是空格)
在上面的示例中,名称有10个字符,年龄为3,性别只有一个。
在sql中是否有一个方法可以获取文件中的前10个字符,将其放在数据库中,然后是接下来的3个字符,依此类推......?
感谢。
答案 0 :(得分:0)
您应该使用mysql的load data infile命令而不指定字段分隔符或可选地由参数括起来的字段 - 但请确保该文件不是unicode:
如果FIELDS TERMINATED BY和FIELDS ENCLOSED BY值都是 empty(''),使用固定行(nondelimited)格式。带固定排 格式,字段之间没有使用分隔符(但你仍然可以使用 行终止者)。而是使用以下方式读取和写入列值 字段宽度足以容纳字段中的所有值。对于 TINYINT,SMALLINT,MEDIUMINT,INT和BIGINT,字段宽度为4, 无论声明显示什么,分别为6,8,11和20 宽度是。
LINES TERMINATED BY仍用于分隔线条。如果一条线 不包含所有字段,其余列设置为其 默认值。如果您没有行终止符,则应设置 这个''。在这种情况下,文本文件必须包含所有字段 每一行。
固定行格式也会影响NULL值的处理,如上所述 后面。
注意如果使用多字节,则固定大小格式不起作用 字符集。
将名称声明为varchar(10),age可能为varchar(3),或者您可以尝试使用unsigned tinyint,gender作为char(1)。