从表中选择与预定义不匹配的值

时间:2013-01-13 12:45:59

标签: php mysql

我有几个从PHP生成的值。像1,10,15,17,20。 我还有一个包含多个值的表,例如:

id
1
3
10
12
15

我想编写一个查询,它将为我提供表id列中不存在的所有数字。 在我的示例中,应返回1720的值。

3 个答案:

答案 0 :(得分:1)

如果将这些数字存储在临时表中以便进行连接,那将会非常容易,例如

SELECT  a.*
FROM    temporaryTable a
        LEFT JOIN tableWithNumbers b
            ON a.ID = b.ID
WHERE   b.ID IS NULL

答案 1 :(得分:1)

我会

SELECT id FROM table WHERE id IN (1, 10, 15, 17, 20)

这将为您提供您所在的那些。

然后使用一些PHP数组函数来获取数组的子数。

答案 2 :(得分:-1)

您可以使用IN:

SELECT id FROM table WHERE id NOT IN (1, 10, 15, 17, 20)

MySQL documentation