选择结果除了字符串in_array与sql

时间:2013-04-11 19:27:29

标签: php sql arrays

我有这样的代码:

$p = $db->query("SELECT ads_id FROM ads_submissions WHERE status = '0'");
$c_ads = array();
while($row = $db->fetchAll($p))
{
    $c_ads[] = $row;
}

输出

4 6 9

我想将此行添加到$ new_ads = $ db->在WHERE之后

AND ads_id = !in_array('$output', $c_ads)

选择除了ID 4和6以及9之外的所有ads_id

$new_ads = $db->fetchOne("SELECT ads_id FROM ads_pack WHERE allowed_countries LIKE '%".$country_tr."%'");

但这永远不会正常工作。

请帮忙吗?

谢谢。

3 个答案:

答案 0 :(得分:2)

在sql中没有in array这样的东西。只有结果集。你想要

AND ads_id NOT IN (4,6,9)

答案 1 :(得分:2)

你应该这样做

AND ads_id NOT IN ( implode(',', $c_ads) )

答案 2 :(得分:0)

你可以使用子查询重写它,而不是运行2个查询吗?

"SELECT ads_id FROM ads_pack WHERE allowed_countries LIKE '%".$country_tr."%' AND ads_id NOT IN (SELECT ads_id FROM ads_submissions WHERE status = '0')"