我有一个MySQL表和一个Excel文件。我想更新MySQL表以包括来自Excel文件的信息,这很简单-只需为创建适当的SQL语句的每一行写一个快速公式。

但是首先,我想检查所有数据是否正确匹配。因此,如果给定的行具有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!)

澄清:我现在不想导入数据!这将是一项复杂的任务,因为需要以各种方式转换数据并将其输入十几个不同的表中。现在,我只想检查非重复项(我想这几乎是完全错误,尽管有些可能是实际的新条目)。

最佳答案

将Excel导出为CSV
确保在WidgetID列上创建了UNIQUE索引
LOAD DATA INFILE与REPLACE或IGNORE选项一起使用(取决于您是要使用新值替换重复项还是保留先前的值)

07-26 06:05