0

我有这样的代码:

$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

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

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."%'");

但这永远无法正常工作。

请问有什么帮助吗?

谢谢你。

4

3 回答 3

2

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

AND ads_id NOT IN (4,6,9)
于 2013-04-11T19:28:55.703 回答
2

你应该这样做

AND ads_id NOT IN ( implode(',', $c_ads) )
于 2013-04-11T19:31:14.127 回答
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')"
于 2013-04-11T19:48:17.220 回答