Java MySQL不会返回CSV中的所有值

Java MySQL不会返回CSV中的所有值,java,mysql,excel,csv,import,Java,Mysql,Excel,Csv,Import,我已将CSV导入MySQL表。 CSV包含员工详细信息,共有687个条目。 MySQL将所有687个条目导入数据库 当我执行语句INSERT INTO copyemployee SELECT*FROM employee where country='India'时,仅插入87个条目,而CSV中有92个条目 我曾试图改变这个国家,但我面临着同样的问题。 任何帮助都将不胜感激。 谢谢我想说的是,CSV文件以不同的方式编写。尝试将CSV文件标准化,删除空格、特殊字符等,这样会得到更一致的结果 步骤1:

我已将CSV导入MySQL表。 CSV包含员工详细信息,共有687个条目。 MySQL将所有687个条目导入数据库

当我执行语句
INSERT INTO copyemployee SELECT*FROM employee where country='India'
时,仅插入87个条目,而CSV中有92个条目

我曾试图改变这个国家,但我面临着同样的问题。 任何帮助都将不胜感激。
谢谢

我想说的是,CSV文件以不同的方式编写。尝试将CSV文件标准化,删除空格、特殊字符等,这样会得到更一致的结果

步骤1:首先确保CSV文件的所有结果都已导入数据库:

SELECT COUNT(1) FROM employee;
编辑:结果:687)

步骤2:尝试此项检查您得到了多少结果:

SELECT * FROM employee WHERE country='India';
编辑:结果87)

第3步:或者您也可以使用(由评论中的其他人建议,但已被删除):

有了这些,你会看到一个不同国家的列表。你可能会不止一次地发现印度,用一种不同的方式书写。也许后面有个空格之类的

在共享CSV后编辑:CSV文件中应有5496(8*687)个逗号。但你有5555。这意味着在其他条目中间有逗号。因此,您的CSV文件使用逗号不一致,您可以尝试使用;相反这就解释了为什么你的国家条目上有名称

错误线路示例:Sameer,,Khawaja,SK3533,Sameer。Khawaja@sailpoint.com,“技术支持经理”,印度,马哈拉施特拉邦,浦那

这使得他被任命为经理,他的国家成为技术支持


另一个解决方案是简单地保证您的条目中没有任何逗号。

我想说的问题是CSV文件以不同的方式编写。尝试将CSV文件标准化,删除空格、特殊字符等,这样会得到更一致的结果

步骤1:首先确保CSV文件的所有结果都已导入数据库:

SELECT COUNT(1) FROM employee;
编辑:结果:687)

步骤2:尝试此项检查您得到了多少结果:

SELECT * FROM employee WHERE country='India';
编辑:结果87)

第3步:或者您也可以使用(由评论中的其他人建议,但已被删除):

有了这些,你会看到一个不同国家的列表。你可能会不止一次地发现印度,用一种不同的方式书写。也许后面有个空格之类的

在共享CSV后编辑:CSV文件中应有5496(8*687)个逗号。但你有5555。这意味着在其他条目中间有逗号。因此,您的CSV文件使用逗号不一致,您可以尝试使用;相反这就解释了为什么你的国家条目上有名称

错误线路示例:Sameer,,Khawaja,SK3533,Sameer。Khawaja@sailpoint.com,“技术支持经理”,印度,马哈拉施特拉邦,浦那

这使得他被任命为经理,他的国家成为技术支持


另一个解决方案是确保您的条目中没有任何逗号。

您可以做一个:选择*FROM employee where country='India'并查看您得到了多少结果吗?您必须尝试构建一些机制,让我们可以复制该问题。看看你有没有检查过哪些值被拒绝,有没有逻辑解释这个问题?copyemployee是否有任何限制?您是否可以做一个:选择*FROM employee where country='India',看看您得到了多少结果?您必须尝试构建一些机制,让我们能够复制该问题。看看你有没有检查过哪些值被拒绝,有没有逻辑解释这个问题?对copyemployee有什么限制吗?你可能是对的-如果你提供一个sql解决方案来检查,我可能会投赞成票you@ScaryWombat事实上,我已经在问题的注释中使用了SQL来检查它,但是你是对的。我编辑了这个问题,在这里也提出了建议。感谢您的建设性评论。@BrenoQ:inline“SELECT*FROM employee WHERE country='India';返回87个结果,而不是92个。“内联”从员工中选择不同的国家/地区;'还返回员工的姓名。这是SQL Fiddle上的架构,感谢您的帮助。因此,可能存在其他可能性,如
country='india'
country='india'
-您必须查明数据是否存在,或者插入失败。@VishalSurya多少个结果:从员工返回中选择count(*)?687? 让我们首先确保插入了CSV文件的每一行。您可能是正确的-如果要提供sql解决方案进行检查,我可能会投票you@ScaryWombat事实上,我已经在问题的注释中使用了SQL来检查它,但是你是对的。我编辑了这个问题,在这里也提出了建议。感谢您的建设性评论。@BrenoQ:inline“SELECT*FROM employee WHERE country='India';返回87个结果,而不是92个。“内联”从员工中选择不同的国家/地区;'还返回员工的姓名。这是SQL Fiddle上的架构,感谢您的帮助。因此,可能存在其他可能性,如
country='india'
country='india'
-您必须查明数据是否存在,或者插入失败。@VishalSurya多少个结果:从员工返回中选择count(*)?687? 让我们首先确保CSV文件的每一行都已插入。