如何显示mysql中不存在的记录?

如何显示mysql中不存在的记录?,mysql,Mysql,如果我执行以下查询: 从codigo所在的表格中选择*(33,34,55,10,22,50) msyql向我显示与查询匹配的记录 但是如果我想知道这个查询(33,34,55,10,22,50)中哪些记录不在数据库中呢? 有没有办法不必自己比较一张唱片就能知道这一点 对不起,我解释得不好。这将显示数据库中与查询不匹配的记录。我想知道哪些记录(33,34,55,10,22,50)不在数据库中。使用: 更新 根据这一新解释,请执行以下操作: SELECT n.id FROM (SELECT 33

如果我执行以下查询:
从codigo所在的表格中选择*(33,34,55,10,22,50)

msyql向我显示与查询匹配的记录

但是如果我想知道这个查询(33,34,55,10,22,50)中哪些记录不在数据库中呢?
有没有办法不必自己比较一张唱片就能知道这一点


对不起,我解释得不好。这将显示数据库中与查询不匹配的记录。我想知道哪些记录(33,34,55,10,22,50)不在数据库中。

使用:

更新

根据这一新解释,请执行以下操作:

SELECT n.id
FROM
  (SELECT 33 AS codigo
   UNION SELECT 34
   UNION SELECT 55 
   UNION SELECT 10
   UNION SELECT 22 
   UNION SELECT 50) AS n
LEFT JOIN tabla USING (codigo)
WHERE tabla.codigo IS NULL;
不幸的是,MySQL(和许多其他系统)没有提供一种简单的方法来使用一些表中没有的任意数字列表。如果需要动态执行此操作,我建议将这些数字添加到临时表中,以代替硬编码的一批联合。或者生成一个可重用的数字表(我发现这非常有用),并使用其中的值。例如:

SELECT nt.id
FROM numbers_table nt
LEFT JOIN tabla ON nt.id = tabla.codigo
WHERE nt.id IN (33,34,55,10,22,50)
  AND tabla.codigo IS NULL
使用:

更新

根据这一新解释,请执行以下操作:

SELECT n.id
FROM
  (SELECT 33 AS codigo
   UNION SELECT 34
   UNION SELECT 55 
   UNION SELECT 10
   UNION SELECT 22 
   UNION SELECT 50) AS n
LEFT JOIN tabla USING (codigo)
WHERE tabla.codigo IS NULL;
不幸的是,MySQL(和许多其他系统)没有提供一种简单的方法来使用一些表中没有的任意数字列表。如果需要动态执行此操作,我建议将这些数字添加到临时表中,以代替硬编码的一批联合。或者生成一个可重用的数字表(我发现这非常有用),并使用其中的值。例如:

SELECT nt.id
FROM numbers_table nt
LEFT JOIN tabla ON nt.id = tabla.codigo
WHERE nt.id IN (33,34,55,10,22,50)
  AND tabla.codigo IS NULL
试试这个

set @suggest_value:=10;   // <---10 is the lowest value
select codigo,
@suggest_value:=@suggest_value+1,
if(codigo=@suggest_value, 0, 1) as missing_value
from tabla
set@suggest\u值:=10;// 试试这个

set @suggest_value:=10;   // <---10 is the lowest value
select codigo,
@suggest_value:=@suggest_value+1,
if(codigo=@suggest_value, 0, 1) as missing_value
from tabla

set@suggest\u值:=10;//对不起,我解释得不好。这将显示数据库中与查询不匹配的记录。我想知道哪些记录(33,34,55,10,22,50)不在数据库中。对不起,我解释得不清楚。这将显示数据库中与查询不匹配的记录。我想知道哪些记录(33,34,55,10,22,50)不在数据库中。