在我的例子中显示更好:
我有表,存储用户的答案来自一个大表格.每个表格有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