我有一个ID的列表,我需要find在MySQL中的表中缺less哪些ID

我有一个优秀的ID号列表,我需要find列出的数字不存在作为主键在某个表中。

我试着做类似的事情

="Select * from table where `exchangeID` =" &A1&";" 

在Excel中,为了生成每行的select语句。 我想通过运行select一个不存在的ID将返回一个错误。 然而,有几百个ID,复制和粘贴大量的select并没有做太多的事情,只能返回最后一对的结果。

任何帮助将非常感激!

将列表插入一个表(可以是临时表),然后用一个LEFT JOIN连接到你的表。

像这样的东西: –

 CREATE TABLE temp ( ID_NUMBER INT ); INSERT INTO temp VALUES (1), (2), (3) 

然后join

 SELECT a.ID_NUMBER FROM temp a LEFT OUTER JOIN sometable b ON a.ID_NUMBER = b.exchangeID WHERE b.exchangeID IS NULL 

我不清楚Excel如何适应你的问题,但是这样的事情可能会起作用

 select * from table where exchangeID not in (34,35,39,101,102) 

其中34,35,39,101和102是有趣的id号码列表

对不起,我的第一个回答是错误的,重新阅读。

要查找数据库中不在Excel中的所有ID,请执行以下操作:

让你的Excel生成一列这样的ID:

 ="'" & A1 & "'," 

将结果列复制并粘贴到文本文件(记事本等)中。

将此文本复制到您的SQL语句中:

 select * from table where not `echangeID` in ([paste your list here]); 

不要忘记从列表中删除最后一个(逗号)。

在Excel中查找不在电子表格中的所有值:

您需要将Excel中的值插入到另一个表中。 您可以使用.csv导入轻松完成此操作。

 select id from [Excel table] where not id in (select id from [original table]);