这将更好地显示在我的示例中:
我有一张桌子,存储着用户从一种大表格中得到的答案。每个表格有139个问题。这些问题存储在不同的表中,并在需要时与questionID结合在一起。对于每个用户,都有一个ID。现在,我需要进行过滤,以仅显示与特定问题匹配一个或 多个 答案的用户。
例如,我希望用户在问题14中回答为“是”,问题54不为空且问题100大于10的情况下。表的外观如下:
**userID** | **questionID** | **answer** 1 14 "yes" 1 54 "something" 1 100 "9" 2 14 "no" 2 54 "north 2 100 "50" 3 14 "yes" 3 54 "test" 3 100 "12"
结果,我只希望返回 userID 3,因为它满足所有条件。
使用ColdFusion可以轻松实现这一点,因为它允许在查询的结果中进行查询,但是在PHP中我找不到任何方法。重要的是,有机会添加随机数量的问题,在本示例中不仅是三个。
尝试,
SELECT userID FROM tableName WHERE (questionID = 14 AND answer = 'yes' ) OR (questionID = 54 AND answer <> 'empty') OR (questionid = 100 AND answer > 10) GROUP BY userID HAVING COUNT(*) = 3