参考:
https://blog.51cto.com/u_16175478/7316302
我现在有从1-10共10个id,数据库里可能含有这些id中的几个,我能不能用一个sql查出哪几个id不在数据库里_百度知道
已存在的表1,含有多条数据,例如他们的id分别为1,2,3,4,....,999。
需要检查id=1,5,10,1001,1002的数据,哪些不在数据库中(可以引申为哪些不在某一类数据中),有两种方式。
方式1
如果需要判断的数据量较小,可以一条条匹配,例如
select * from table where id=1;
为空则证明不在数据库,在业务逻辑中进行分析。
方式2
如果需要匹配的数据量较大,可以做一个临时表,将要查询的数据放入里面,再进行not in操作:
select t.int_value from temp_table t where int_value not in (select id from table)