gpt4 book ai didi

mysql - 通过给定值比较查找记录是否存在

转载 作者:行者123 更新时间:2023-11-29 15:44:35 25 4
gpt4 key购买 nike

我有一个如下所示的表:角色ID |权限ID

现在两列都是 int 类型。我需要通过给定的权限 ID 来检查是否存在该权限 ID 内的角色 ID。

我尝试在线搜索一些解决方案,但找不到。我很确定我找不到合适的词来阅读更多相关内容

例如,表格如下所示:

roleID          permissionID
1 1
1 2
1 4
2 4
2 1
3 4

例如,我收到 ids 1,2,4,它们是permissionID,并且我看到 roleID 1 与他有所有这些关系。编辑:给定的角色 ID 需要与权限 ID 计数完全匹配,如果它的数量超过给定值,则不计为找到的值。感谢所有愿意提供帮助的人的努力!

最佳答案

您可以按角色ID分组并将条件放在HAVING子句中:

select
roleid
from tablename
where permissionid in (1, 2, 4)
group by roleid
having count(distinct permissionid) = 3

请参阅demo .
结果:

| roleid |
| ------ |
| 1 |

编辑,获取仅具有列表中权限的roleids:

select
roleid
from tablename
group by roleid
having
count(distinct permissionid) = 3
and
sum(permissionid not in (1, 2, 4)) = 0

请参阅demo .

关于mysql - 通过给定值比较查找记录是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57208985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com