我有mysql表,列出了用户所属网站的哪些部分,以及他们是否有管理员权限(admin = 1或admin = 0,basic = 1或basic = 0)。
我想给第一个用户数据库找到我希望通过mySQL执行此操作的每个部分管理员权限。
有没有,我可以选择每个部分的第一个用户并给他们管理员权限?
所以我的表看起来就是这样的例子
SECTION_USER
| --ID-- | --USER_ID-- | --SECTION_ID-- | --ADMIN-- | --BASIC-- |
| - 1-- | ------- 100 ---- | ------------- 999 ---- | ---- 0 ------ - | ----- 1 ------ |
| - 2-- | ------- 101 ---- | ------------- 999 ---- | ---- 0 ------ - | ----- 1 ------ |
| - 3-- | ------- 102 ---- | ------------- 100 ---- | ---- 0 ------ - | ----- 1 ------ |
| - 4-- | ------- 103 ---- | ------------- 100 ---- | ---- 0 ------ - | ----- ------ 1 |
基本上,查询会将用户100更新为admin,用户102更新为admin,因为它们是第999部分和第100部分的第一个结果。
答案 0 :(得分:0)
update section_user su
join
(
select section_id, min(id) as id
from section_user
group by section_id
) tmp on tmp.section_id = su.section_id
and tmp.id = su.id
set admin = 1
内部选择获取每个部分和每个部分的第一个(MIN)用户。如果您加入该结果,则可以更新该表。