查询似乎不适用于枚举

时间:2015-03-09 12:51:59

标签: php mysql

我有一个包含各种字段的数据库,包括名为“live”的枚举字段('0','1')。 下面的查询工作正常但当我要求查询只返回live ='1'的行时,它只是忽略它并且行为类似于第一个查询。如果有人可以提供任何建议,我将非常感激。

第一个查询工作正常:

$sql = "SELECT firstname,lname,id FROM members WHERE CONCAT(firstname, ' ', lname) LIKE '%$searchquery%' OR lname LIKE '%$searchquery%' OR firstname LIKE '%$searchquery%' ORDER BY id";

但是当我添加 AND live ='1'时,它会忽略它。

$sql = "SELECT firstname,lname,id,live FROM members WHERE CONCAT(firstname, ' ', lname) LIKE '%$searchquery%' OR lname LIKE '%$searchquery%' OR firstname LIKE '%$searchquery%' AND live = '1' ORDER BY id";

我怎样才能返回live ='1'的行?

1 个答案:

答案 0 :(得分:1)

您必须在括号中包含OR条件:

$sql = "SELECT firstname,lname,id,live FROM members 
WHERE 
(
CONCAT(firstname, ' ', lname) LIKE '%$searchquery%' 
OR lname LIKE '%$searchquery%' 
OR firstname LIKE '%$searchquery%'
)
AND 
live = '1' ORDER BY id";