mysql 具有以下任意一项或全部内容的搜索查询

np8igboo  于 2023-03-28  发布在  Mysql
关注(0)|答案(1)|浏览(103)

我目前正在写一个查询,似乎不能得到它的权利,所以我写一些建议。
我有一个props[userId, name](其中name是一个属性)。
| 用户ID|名称|
| --------------|--------------|
| 1|A|
| 1|B|
| 二|B|
| 三|A|
| 三|B|
| 三|C|
| 四|A|
假设有这样的数据
为了搜索名称,我们接收到[“A”,“B”]的数据。
1.要查找其中任何一个的内容,我可以发出如下查询来查找userId 1,2,3,4。

select userId from props where name in ("A","B") group by userId;

我不知道如何处理查询以找到两者都有的东西。
如果我想像上面那样找到[“A”,“B”],搜索结果应该是两个userId 1,3。
感谢阅读我的问题。

ijnw1ujt

ijnw1ujt1#

如果我想像上面那样找到[“A”,“B”],搜索结果应该是两个userId 1,3。
您可以在SQLFiddle中这样做

SELECT userId
FROM props
WHERE name IN ("A", "B")
GROUP BY userId
HAVING COUNT(DISTINCT name) = 2;

这将给予你预期的结果:

userId
1
3

相关问题