mysql查询更新首次出现参数

时间:2016-04-08 15:43:24

标签: mysql database

我有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部分的第一个结果。

1 个答案:

答案 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)用户。如果您加入该结果,则可以更新该表。