Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.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数据库_Mysql_Database_File - Fatal编程技术网

将数据从测试文件导入mysql数据库

将数据从测试文件导入mysql数据库,mysql,database,file,Mysql,Database,File,我知道我的问题已经有了答案,但到目前为止,我还没有找到一个100%回答我问题的答案 无论如何,是否有一种方法可以[insert title here]其中[delimiter]是字符数?我想说的是…例如,文本文件有三个数据:姓名、年龄和性别。格式如下所示 Joseph_____18_M(假设下划线是空格) 在上面的示例中,姓名有10个字符,年龄有3个字符,性别只有一个字符 在sql中是否有一种方法可以获取文件中的前10个字符,将其放入数据库,然后是接下来的3个字符,依此类推 谢谢。您应该使用my

我知道我的问题已经有了答案,但到目前为止,我还没有找到一个100%回答我问题的答案

无论如何,是否有一种方法可以[insert title here]其中[delimiter]是字符数?我想说的是…例如,文本文件有三个数据:姓名、年龄和性别。格式如下所示

Joseph_____18_M(假设下划线是空格)

在上面的示例中,姓名有10个字符,年龄有3个字符,性别只有一个字符

在sql中是否有一种方法可以获取文件中的前10个字符,将其放入数据库,然后是接下来的3个字符,依此类推

谢谢。

您应该使用mysql命令,而不指定字段分隔符或可选由参数括起的字段,但请确保该文件不是unicode文件:

如果以值结尾的字段和由值括起的字段都是 空(“”),使用固定行(非delimited)格式。固定行 格式,字段之间不使用分隔符(但仍可以使用 线路终止符)。相反,列值是使用 足够宽的字段宽度,可以容纳字段中的所有值。对于 TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT,字段宽度为4, 6、8、11和20,无论声明的显示是什么 宽度是

以结尾的行仍用于分隔行。如果一行 不包含所有字段,其余列设置为其 默认值。如果没有行终止符,则应设置 此操作将发送到“”。在这种情况下,文本文件必须包含 每行

如前所述,固定行格式也会影响空值的处理 稍后

注意:如果使用多字节,则固定大小格式不起作用 字符集。


将名称声明为varchar(10),年龄可能为varchar(3),或者您可以尝试使用未签名的tinyint,性别为char(1)。

只需使用该函数。如果目标是将平面文件加载到表中,我想他希望加载数据。@RobbyCornelissen是的,就像TimBiegeleisen所说的,它需要是
LOAD DATA
,因为它是数据库的一个文件。所以使用
LOAD DATA
并使用
SUBSTR()
…哦,嘿,
SUBSTR()
确实有效。谢谢,@RobbyCornelissen