我有一个包含各种字段的数据库,包括名为“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'的行?
答案 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";