2013-12-23 22 views
0

所以我有一个MySQL表,人,与字段_Name,_Criminal,_Loyalist,_PrevJailed和三个人在数据库中。基于MySQL的搜索没有提出全部结果

_Name   | _Criminal | _Loyalist | _PrevJailed 
----------------------------------------------------------- 
John Mitt  | 1   | 0   | 1 
John Sample  | 0   | 1   | 1 
Jane Lastname | 0   | 0   | 1 

当查询

SELECT * 
FROM people 
WHERE `_Name` LIKE '%' 
    AND _Criminal = 1 
    AND `_Loyalist` = 0 
    AND `_PrevJailed` = 1 

它带来了约翰·米特寻找的人,如我预言。但当用类似于

SELECT * 
FROM people 
WHERE `_Name` LIKE '%' 
    AND _Criminal = 0 
    AND `_Loyalist` = 0 
    AND `_PrevJailed` = 1 

这样的查询进行搜索时,它只会产生Jane Lastname。它应该引起John Sample John Mitt,因为他们之前都被监禁过。在这个问题上我被困了三天。我现在的系统的工作原理,你只是需要搜索时非常特定的(即注明确切的“记录”(0,0,1等)。

+0

咦?并要求所有的条件是真实的,也许您需要OR。 – Mihai

+0

即使当_Criminal,_Loyalist和_PrevJailed都为零时,使用OR可以调出整个表(大约60条记录)。 – user2142702

回答

0
SELECT 
    * 
FROM people 
WHERE `_PrevJailed` = 1 
AND (_Criminal = 0 OR `_Loyalist` = 0)