gpt4 book ai didi

mysql - 如果 MySQL 表中不存在,则添加一行

转载 作者:行者123 更新时间:2023-11-29 04:35:53 24 4
gpt4 key购买 nike

在一个表中有 2 列:useridroleid。每个用户至少应该有 roleid 4 。目前大约有 10.000 条记录,但不知为何有一小部分用户没有此角色。

视觉示例:

userid  |  roleid
1 1
1 4
2 1
2 4
3 1 <---------- userid 3 misses roleid 4!
4 1
4 4

当该组合不存在时,是否可以执行查询并添加包含 userid 和 roleid 的行?

最佳答案

是的。

insert into userRoles(userid, roleid)
select userid, 4
from userRoles
group by userid
having sum(roleid = 4) = 0;

having 子句中的sum(role = 4) 计算具有4 的每个用户的行数。 = 0 表示没有。

注意:这为该表中的所有用户提供了 4 的角色 ID。可能有些用户根本没有角色。

如果您需要它们,请使用 users 表:

insert into userRoles(userid, roleid)
select u.userid, 4
from users u
where not exists (select 1 from userRoles ur where ur.userid = u.userid);

关于mysql - 如果 MySQL 表中不存在,则添加一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42137263/

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