Php 检索不在值数组中的多行

Php 检索不在值数组中的多行,php,mysql,sql,arrays,Php,Mysql,Sql,Arrays,我有一个表,其中包含id 5位数字和其他详细信息。我有一个数组,其中包含该表中的一些id。我的任务是检索id不在该数组中的行。我试过一些方法 这是我到目前为止所做的代码 这是数组,$cids是我使用query获取的id $camp=implode(",",$cids); 查询: SELECT campaign_id FROM tab_camp WHERE country='$country' OR country='All Countries' AND campaign_id NOT IN('

我有一个表,其中包含id 5位数字和其他详细信息。我有一个数组,其中包含该表中的一些id。我的任务是检索id不在该数组中的行。我试过一些方法

这是我到目前为止所做的代码

这是数组,$cids是我使用query获取的id

$camp=implode(",",$cids);
查询:

SELECT campaign_id FROM tab_camp WHERE country='$country' OR country='All Countries' AND campaign_id NOT IN('$camp')";

但这个查询并没有给出结果。有人能帮我写查询吗?。

sql应该是这样的

$sql = "SELECT campaign_id FROM tab_camp WHERE (country='$country' OR country='All Countries') AND campaign_id NOT IN($camp)";

IN运算符的列表是逗号分隔的值列表,而不是包含逗号分隔项的单个字符串。省略单引号:

SELECT 
    campaign_id 
FROM 
    tab_camp 
WHERE 
    country='$country' 
OR 
    country='All Countries' 
AND 
    campaign_id NOT IN($camp)
如果我理解正确,您可以从另一个查询中获得这个ID数组。如果是这种情况,可以使用子查询:

SELECT 
    campaign_id 
FROM 
    tab_camp 
WHERE 
    country='$country' 
OR 
    country='All Countries' 
AND 
    campaign_id NOT IN(SELECT <your ids> FROM other ....)
注:


您应该了解PDO或mysqli,并使用带有占位符的准备语句将输入值绑定到。这将负责SQL注入,但也引用。

这个数组包含多少元素?首先考虑使用准备好的语句,而不是将其硬编码到查询中,以保证安全性为您提供答案。我得到了结果。