我花了几个小时寻找答案,但我认为我可能没有找到正确的方向。这是我的问题:
假设我有一个像这样的简单表格:
entity_id delta option_id
-------------------------------
1 0 10
1 1 11
2 0 10
2 1 11
2 2 12
我有一个多值字段,我想找到具有 option_id (10,11,12) 的那个,它应该返回 entity_id = 2。我试过使用 IN,但它不够“精确”,我的意思是我可以搜索 option_id (11,12),它仍然会返回 entity_id 2,这不是我想要的。 我已经尝试过 ALL,但我认为这不是我想要的。 非常感谢你的帮助。我很确定答案在其他人的帖子中,但我没能找到。
埃德
最佳答案
您在此处使用 GROUP BY 和 HAVING 来查找包含您要查找的所有项目的元素。
SELECT t.entity_id
FROM your_table t
WHERE t.option_id IN (10,11,12)
GROUP BY t.entity_id
HAVING COUNT(DISTINCT t.option_id) = 3; /* because there are 3 elements in the IN clause */
关于mysql - 多字段值的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33808097/