3

希望这只是语法的一个例子。

我正在为 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' ";

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

4

1 回答 1

9

使用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用逗号分隔多个值。

于 2012-06-14T17:23:35.140 回答