从MySQL查询中排除多个ID

时间:2012-06-14 17:21:52

标签: mysql

希望这只是语法的一种情况。

我正在为Wordpress编写一个自定义搜索功能,除了我想排除一些依赖于他们ID的结果外,它一切都很好。

这可以使用一个ID

$sqlp_page ="select ID, post_title, post_name, post_excerpt from wp_posts where post_type='page' and ID != '236' ";
                $sqlp_page .="and post_status='publish' ";
                $sqlp_page .="and (post_title like '%".$_GET['s']."%' ";
                $sqlp_page .="or post_content like '%".$_GET['s']."%') ";
                $sqlp_page .="and post_status='publish' ";
                $sqlp_page .="order by id ASC ";

但我似乎无法为ID传递多个值。 我在网上搜索并尝试了几种不同的方法,但似乎没有什么对我有用。

                    $sqlp_page ="select ID, post_title, post_name, post_excerpt from wp_posts where post_type='page' and ID != '236,239' ";

或者

$sqlp_page ="select ID, post_title, post_name, post_excerpt from wp_posts where post_type='page' and ID != '236' or '239' ";

 $sqlp_page .="and ID != '236' ";
 $sqlp_page .="and ID != '239' ";

但似乎没有任何效果。 非常感谢任何帮助。

1 个答案:

答案 0 :(得分:6)

使用NOT IN

$sqlp_page ="select ID, post_title, post_name, post_excerpt 
from wp_posts where post_type='page' and ID NOT IN ('236','239') ";

NOT IN内,您需要用逗号分隔多个ID值。