Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql-查询以找出哪些是我没有的?_Mysql_Sql - Fatal编程技术网

mysql-查询以找出哪些是我没有的?

mysql-查询以找出哪些是我没有的?,mysql,sql,Mysql,Sql,好的,我有一张表,上面有人和Id列,有数千条记录。。。我还有一个逗号分隔的ID列表,如下所示 1, 2, 457, 558, 998 我想检查这个人员表,看看5条记录中哪一条不存在 我试过了 select id from people where id not in (1, 2, 457, 558, 998) 但这将返回所有其他1000条记录,而不仅仅是在这5条记录中找不到的记录 你知道我遗漏了什么吗 select a.id from ( select 1 as id uni

好的,我有一张表,上面有人和Id列,有数千条记录。。。我还有一个逗号分隔的ID列表,如下所示

1, 2, 457, 558, 998
我想检查这个人员表,看看5条记录中哪一条不存在

我试过了

select id from people where id not in (1, 2, 457, 558, 998)
但这将返回所有其他1000条记录,而不仅仅是在这5条记录中找不到的记录

你知道我遗漏了什么吗

select a.id
from (
    select 1 as id
    union all
    select 2
    union all
    select 457
    union all
    select 558
    union all
    select 998
) a 
left outer join people p on a.id = p.id
where p.id is null
如果要检查的值在表中,可以执行以下操作:

select c.id
from MyCheckValues c
left outer join people p on c.id = p.id
where p.id is null

也许是这样的:

Select id from people where id in (1, 2, 457, 558, 998)
and id not in ( select id from people )
如果每个“id”有多个,则使用:

SELECT DISTINCT(id) FROM people WHERE id IN (1, 2, 457, 558, 998)

将中的
not
更改为
,并在(5)个结果中更改为
;只需检查您缺少哪一个。不,我需要5个记录中的记录,这些记录不在人员表中…例如,如果1、2和998已经在人员通话中,那么我需要457,558已返回,仅此而已…这将查找所有匹配项…而不是不匹配项…这是我需要的。这将为您提供所提供列表中的所有记录,除了已在人员表中的记录。(那些不匹配的)-除非我遗漏了你的初始问题。不,我需要5个记录中的记录,这些记录不在people表中…例如,如果people talke中已经有1、2和998,那么我需要457,558已返回,仅此而已…不,这给了我已在人员表中的记录…也许你有它的背景词实际上,此查询不会返回任何行。我不能使用此方法,因为我有3000条记录需要检查-我需要5条记录中不在人员表中的记录…因此,例如,如果1,2和998已经在人们的谈话中了我需要457,558已返回,仅此而已…@Trace我的查询就是这样做的。但我有3000条记录需要验证,我无法为每一条记录选择1作为id union all。union
union
仅用于您要检查的5个值。我的问题只是我需要检查的一个示例….我有3000条记录,而不是5条记录。。。如果他把$arr=array(1,2457558998)放进去,我就不想在我的问题中粘贴所有的3000个问题:“查询以找出哪些我没有?”;然后在上面查询以获得另一个数组,然后在脚本中进行简单的比较,即可得到所需的结果。当然,这不是一个纯粹的SQL答案,但这正是我的想法。不确定您的查询或此查询在性能方面是否会更快。除非是一次性交易,否则他必须使用一些脚本语言来构建您的查询。
SELECT DISTINCT(id) FROM people WHERE id IN (1, 2, 457, 558, 998)