PHP QUERY仍然显示LIKE的结果?

时间:2011-05-08 20:22:40

标签: php mysql where sql-like

我有一个能够正确找到所有内容的搜索,但我现在唯一的问题是它还会显示我不想提取的结果。查询代码如下:

$query="SELECT * FROM users 
WHERE uid!='1' 
AND userf LIKE '%$key%' OR userl LIKE '%$key%' OR userm LIKE '%$key%'";

我希望它能够显示它现在提取的结果,而不是代码读取uid!='1'的结果。

1 个答案:

答案 0 :(得分:3)

我认为你的问题是缺少括号。

$query="SELECT * FROM users WHERE uid != '1' AND ( userf LIKE '%$key%' OR userl LIKE '%$key%' OR userm LIKE '%$key%' )";

没有括号,AND只会在前两个条件之间,所有其他条件都不会被踢出,因为它们是OR'd

由于uid字段可能是INTEGER字段,因此您也不应该在引号中使用值1。它应该是这样的:

$query="SELECT * FROM users WHERE uid != 1 AND ( userf LIKE '%$key%' OR userl LIKE '%$key%' OR userm LIKE '%$key%' )";