如何获得SELECT ... IN(...)的结果与IN()子句

时间:2017-03-01 09:24:51

标签: mysql

我有一组id(例如1,4,7,8,9)和一个带id字段的表示例。 (表1,4,8,9,10中的ID值) 我想获得未在表中使用的数组的id,所以实际上与

相反
SELECT id FROM example WHERE id IN (1,4,7,8,9);

所以我期望的结果是7,因为它是表格中没有使用的数组1,4,7,8,9的唯一值。

有人可以告诉我如何实现该查询吗?

BR Forfaro

2 个答案:

答案 0 :(得分:1)

相反
SELECT id FROM example WHERE id IN (1,4,7,8,9);

可以通过否定where子句中的条件来实现:

SELECT id FROM example WHERE id not IN (1,4,7,8,9);

SELECT id FROM example WHERE not (id IN (1,4,7,8,9));

答案 1 :(得分:0)

您可以使用要搜索的值创建临时表,然后使用not exists

<强>查询

create table #t(`id` int);
insert into #t values
(1), (4), (7), (8), (9);

select `id` from #t t1
where not exists(
     select 1 from example_table t2
     where t1.`id` = t2.`id`
);

drop table #t;