2013-03-28 252 views
0

我有一组用户可以选择的字段来缩小搜索结果的范围。最后两个选择是复选框,请告诉我是否应该在我描述问题时更改此选项。SQL包括使用AND/OR/BOTH的记录

我有一个包含两个选项A和B的项目列表。它们在数据库中标记为0代表否,1代表是。这些选项可以在一个或另一个上标记。

Item 1 (0,1) 
Item 2 (1,1) 
Item 3 (1,0) 

我想检索项目2和3,如果用户检查第一个框。 如果用户检查第二个框,我想检索项目1和2。 我想检索所有项目,如果他们检查两个框。

我想我需要做一些事情,如:

WHERE (A = check1 AND (B = 0 OR B = 1)) 
    AND (B = check2 AND (A = 0 OR A = 1)) 

但它无法正常工作。随着检查1选中,我只得到第3项,而不是项目2和3

+0

您可以根据复选框更改条件,并检查选中的条件是否为'1' – 2013-03-28 02:43:06

回答

1

试试这个:

where (check1 = 0 or A = 1) and (check2 = 0 or B = 1) 

你的“0”的复选框意味着一切,所以包括在逻辑。

+0

谢谢,这不是我准备使用的确切解决方案,但指出“0”很重要我甚至没有想过。感谢您的提示! – user1518699 2013-03-28 05:41:24