从PHP mySQL搜索结果中排除值
我已经阅读了关于排除PHP和mySQL中的结果的内容,但我似乎无法找出我正在使用的搜索代码的正确语法 在我的所有其他结果表中,只要在“WHERE”语句后添加以下内容,就可以轻松地从数据库中提取信息,而不必使用搜索表单,排除userlevels:从PHP mySQL搜索结果中排除值,php,mysql,search,syntax,Php,Mysql,Search,Syntax,我已经阅读了关于排除PHP和mySQL中的结果的内容,但我似乎无法找出我正在使用的搜索代码的正确语法 在我的所有其他结果表中,只要在“WHERE”语句后添加以下内容,就可以轻松地从数据库中提取信息,而不必使用搜索表单,排除userlevels: WHERE `userlevel` !='9' AND `userlevel` !='1' AND `userlevel` !='4' AND `userlevel` !='5' AND `userlevel` !='6' 现在,我使用的搜索代码使用“
WHERE `userlevel` !='9' AND `userlevel` !='1' AND `userlevel` !='4' AND `userlevel` !='5' AND `userlevel` !='6'
现在,我使用的搜索代码使用“或”而不是“和”和“像”。看起来是这样的:
//Set the MySQL query
if ($search == NULL or $search == '%'){
} else {
for ($i=0; $i<count($keywords); $i++) {
$query = "SELECT * FROM sound_users " .
"WHERE genre LIKE '%".$keywords[$i]."%'".
" OR genre2 LIKE '%".$keywords[$i]."%'" .
" OR genre3 LIKE '%".$keywords[$i]."%'" .
" OR bandname LIKE '%".$keywords[$i]."%'" .
" ORDER BY genre";
}
这只会对搜索结果造成一些不好的影响,结果是两个不同的表同时包含了这两个用户级别,两个表叠在一起。所以我将“OR”改为“AND”-就像在我的其他代码中一样,这也不起作用
在这一点上,我试图添加我发现的“不在”和“不存在”示例,但无论我怎么做,似乎总是返回san错误,告诉我检查语法
我想知道是否可以使用“或”从搜索结果中排除特定值,或者排除仅适用于基本代码,只需从数据库中调用值即可显示,而不必使用搜索表单。括号是您的朋友
WHERE
(X LIKE '%X%' OR Y LIKE '%Y%' OR Z LIKE '%Z%')
AND
(X NOT LIKE '%XX%' OR Y<>'abc' OR LENGTH(Z)<5 OR A<>7)
在哪里
(X类“%X%”或Y类“%Y%”或Z类“%Z%”
和
(X不像“%XX%”或“Y'abc”或长度(Z)太感谢了!我真的很难做到这一点!我在一些示例中看到了一些括号之类的东西,但一定是把它们放在了所有错误的位置。在您的帮助下,它现在开始工作了!非常感谢!我一直在学习。
WHERE
(X LIKE '%X%' OR Y LIKE '%Y%' OR Z LIKE '%Z%')
AND
(X NOT LIKE '%XX%' OR Y<>'abc' OR LENGTH(Z)<5 OR A<>7)