SQL包括带AND / OR / BOTH的记录

时间:2013-03-28 02:39:45

标签: php mysql sql

我有一组字段,用户可以选择缩小搜索结果范围。最后两个选项是复选框,如果我描述了问题,请告诉我是否应该更改。

我有一个带有两个选项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项。

1 个答案:

答案 0 :(得分:1)

试试这个:

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

复选框的“0”表示所有内容,因此请将其包含在逻辑中。