2012-06-14 4 views
2

Надеюсь, это всего лишь случай синтаксиса.Исключить несколько ID из запроса MySQL

Я пишу пользовательскую функцию поиска для Wordpress, и все это отлично работает, за исключением того, что я хочу исключить пару результатов, зависящих от их идентификаторов.

Это хорошо работает с одним 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

Не можете использовать 'WHERE ID IN ('1', '5', '235');' – Bob

ответ

5

Использование 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 значений с запятой.

+0

Cheers! Прекрасно работает! – user892670