这是我原来问题的扩展: How do I pull all rows from a table with one unique field and specific values for another field?
我有一个包含两个字段的表:user_id 和 Skill_id。
我想提取具有特定数字的 Skill_id 的所有行,但我有大量的 Skill_id 需要搜索(~30)。我使用了上面链接的问题中提出的自连接建议,但由于需要寻找大量技能,该查询被证明非常慢。
如何在不使查询陷入困境的情况下查找大量技能 ID?
编辑:
这是我正在寻找的示例。使用下表,我想提取 Skill_id 为 10 AND 11 AND 12 等的所有用户行(除非我一次寻找更多类似 30 个技能)。
TABLE
user_id | skill_id
=====================
1 | 10
1 | 11
1 | 12
1 | 13
2 | 10
2 | 12
2 | 13
3 | 15
3 | 16
4 | 10
5 | 45
5 | 46
最佳答案
如果我很好地理解您的问题,以下查询可能会对您有所帮助。假设 (user_id, Skill_id)
是 UNIQUE 或 PK。
SELECT user_id
FROM tab
WHERE skill_id IN (30 entries)
GROUP BY user_id
HAVING SUM(skill_id IN (30 entries)) = 30;
您可以在这里进行测试。 http://www.sqlfiddle.com/#!2/f73dfe/1/0
关于php - 如何从一张表中提取大量多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20437139/