首先,请原谅这个非常模糊/冗长的问题,我真的不确定如何在没有完整解释的情况下总结我的查询。
好的,我有一个 MySQL 表,格式如下
一些表
- 用户身份
- some_key
- 一些值
如果您想象,对于每个用户,有多个行,例如:
1 | skill | html
1 | skill | php
1 | foo | bar
2 | skill | html
3 | skill | php
4 | foo | bar
如果我想找到所有将 HTML 列为技能的用户,我可以简单地执行以下操作:
SELECT user_id
FROM some_table
WHERE some_key = 'skill' AND some_value='html'
GROUP BY user_id
很容易。这会给我用户 ID 的 1 和 2。
如果我想找到所有将 HTML或PHP 列为技能的用户,那么我可以这样做:
SELECT user_id
FROM some_table
WHERE (some_key = 'skill' AND some_value='html') OR (some_key = 'skill' AND some_value='php')
GROUP BY user_id
这会给我使用 ID 的 1、2 和 3。
现在,我正在努力解决的是如何查询同一个表,但这次说“给我所有将 HTML和PHP 列为技能的用户”,即:只有用户 ID 1。
非常感谢任何建议、指导或文档链接。
谢谢。