我有一个MySQL表和一个Excel文件。我想更新MySQL表格以包含来自Excel文件的信息,这很简单 - 只需为每行创建适当的SQL语句编写一个快速公式即可。在外部列表中检查MySQL表中的重复项?
但首先我想检查所有数据是否正确匹配。因此,如果给定的行有WidgetID 1001,我想检查该WidgetID是否在MySQL表中。对于给定的行,这很简单 - 只需生成一个SQL语句
SELECT COUNT(*) FROM mytable WHERE WidgetID = "1001"
并执行它。但是,如何在不粘贴命令的情况下检查所有行?基本上,我想要的东西像
If (SELECT COUNT(*) FROM mytable WHERE WidgetID = "1001") = 0 Display "1001\n"
但我不知道如何做到这一点。 (我不使用SQL多!)
澄清:我做不想在这个时候导入数据!这将是一项复杂的任务,因为数据需要以各种方式转换并输入十几个不同的表格。现在我只想检查非重复(这将几乎完全是错误,我想,虽然有些可能会是实际的新条目)。
所有条目应该是重复的。现在我不想导入数据,因为有些条目不会重复 - 它们会有错别字或导致它们不匹配的其他错误。我想要的是找到非重复的,*不*要导入数据。 (导入会复杂得多,因为数据需要进入许多不同的表格。) – Charles 2010-09-22 20:57:30
好的。我会告诉你我会做什么。我仍然会使用LOAD DATA INFILE将CSV数据加载到临时表中(而不是MySQL临时表 - 临时表示它将用于临时存储数据)表,然后使用包含左连接的简单查询来查找不匹配的条目。 – Mchl 2010-09-22 21:29:35
听起来不错,我会尝试。 – Charles 2010-09-23 14:05:46